1
私は間違いなしです。フォルダuploads
はchmod 777
です。express.jsとmulter with ajaxを使った単純なマルチパートファイルアップロード
バックエンド:
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
});
var upload = multer({ storage: storage,
limits: { fileSize: '50mb' }}).single('photo');
router.post('/bild',function(req,res){
console.log("REQ",req); //file is there in the body
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
});
フロントエンド:
$("#formular").submit(function (e) {
e.preventDefault();
var form = $(this)[0];
var formData = new FormData(form);
console.log(formData)
$.ajax({
type: "POST",
url: "https://stackoverflow.com/users/bild",
data: formData,
processData: false,
"content-type": "application/x-www-form-urlencoded",
success: function(r){
console.log("result",r)
},
error: function (e) {
console.log("some error", e);
}
});
});
しかし、誰のファイルがアップロードされませんでした。私はまた、ファイルを取得し、同じ効果を送信する前にformDataに追加しようとしました。 contentType
はjQuery.ajaxでFORMDATAオブジェクトを使用する場合はfalseに設定する必要があり、フロントエンドのために