#文件上傳
##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)
}
})