上传文件

#文件上传
##NodeJS后端:
###1.下载multiparty插件
在npm相应的项目文件目录下下载:npm install multiparty
###2.编写上传的路由方法
    let multiparty = require("multiparty")
    let path = require("path")
    .
    .
    .
    router.post("/upload",function(req,res){
     let form = new multiparty.Form({
     uploadDir:"./public/upload" //指定保存上传文件的路径
     })
     form.parse(req, function(err,fields,files){
     let key = Object.keys(files)[0] //获取上传信息中的key
     if(err){
     res.send(err)
     }else{
     res.send(path.basename(files[key][0].path)) //根据key获取上传的文件名并返回
     }
     })
    })

##前端:
###1.添加上传控件
###2.引入ajaxfileupload插件
在需要上传文件的页面引入 ajaxfileupload.js 文件
####上传文件需要设置form表单的enctype属性,值必须为"multipart/form-data"。如果用ajax实现上传的话,可以使用FormData对象来封装上传的数据。当然,也可以使用一些插件来实现。
###3.上传成功后,获取服务器返回的文件名,将该文件名设置到Img标签的src中。
    <div style="margin-bottom:20px">
<input
class="easyui-filebox"
name="addMovieFile"
style="width:200px"
data-options="label:'上传封面:'"
>
<a class="easyui-linkbutton" id="addMovieFileBtn" data-options="iconCls:'icon-add'"></a>
</div>
<div class="addHeadImg">
<img src="images/no-image.png" alt="">
<input type="hidden" id="addHeadImgPath">
</div>

    $.ajaxFileUpload({
        url:"/upload",
        dataType:"string",
        fileElementId:$("[name=addMovieFile]").attr("id"),
        success:function(path){
            $(".addHeadImg>img").attr("src","/upload/" + path)
        }
    })
posted @ 2019-08-22 08:54  沐子李  阅读(119)  评论(0编辑  收藏  举报