我尝试使用Dropzone和Express实现简单的图片上传演示。 我的表格如下:
<form id="ul-widget" action="/fileupload" class="dropzone" enctype="multipart/form-data">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</form>
属于此表单的javascript如下所示:
<script type="text/javascript">
Dropzone.options.ulWidget = {
paramName: 'file',
init: function() {
this.on('complete', function( file, resp ){
console.log(file);
console.log(resp);
});
}
}
</script>
正如您现在所看到的,我只是记录&#34;文件&#34;和&#34; resp&#34;,但&#34; resp&#34;总是“不确定”&#39;即使上传有效。后端代码如下所示:
var express = require("express");
var app = express();
var multer = require("multer");
var upload = multer({ dest: 'uploads/' } );
app.set("view engine", "ejs");
app.use('/static', express.static(__dirname + '/node_modules/'));
app.get("/", function(req, res){
res.render("main");
});
app.post("/fileupload", upload.single('file'), function(req, res, next){
console.log(req.file);
return res.status(200).send(req.file);
});
app.listen(8080, "0.0.0.0", function(){
console.log("Dropzone Demo started.");
});
文件出现在上传文件夹中,但对前端的响应始终是“未定义的”。我使用了这篇文章https://www.sitepoint.com/file-upload-form-express-dropzone-js/
答案 0 :(得分:0)
问题的解决方案只是取代“完成”。成功&#39;现在它的工作原理。据Docs&#39;完成&#39;没有成功,而成功&#39;返回两个参数(file,resp):http://www.dropzonejs.com/#event-success