ajaxでフォームデータを使用して画像をアップロードしようとしています。下の行は正常に動作していて、ローカルマシン上にイメージを保存しているようです。ajaxを使用してファイルをアップロードするためのフォームデータを送信
<form ref='uploadForm' id='uploadForm' action='/tab10/uploadImage' method='post' encType="multipart/form-data">
<input type="file" class="btn btn-default" name="file" />
<input type='submit' class="btn btn-default" value='Broadcast Image' />
</form>
しかし、その代わりに、フォームの属性としてアクションを指定するので、私はAJAXを使用して電話をかけるしようとすると、物事はfine.Belowを動作していないようでした私はポストのAPIを作るために使用していたコードですajaxを使用して呼び出します。以下は
HTML
<form ref='uploadForm' id='uploadForm' encType="multipart/form-data">
のjQuery
$("form#uploadForm").submit(function (event) {
//disable the default form submission
event.preventDefault();
var formData = $(this).serialize();
console.log(formData);
$.ajax({
url: '/tab10/uploadImage',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function() {
alert('Form Submitted!');
},
error: function(){
alert("error in ajax form submission");
}
});
return false;
});
私は画像を保存するために使用していたコードです。
私は私のuploadimage機能に要求データをチェックしexports.uploadImage = function(req, resp) {
var res = {};
let file = req.files.file;
file.mv('./images/image', function(err) {
if (err) {
res.status = 500;
res.message = err;
// return res.status(500).send(err);
return resp.send(res);
}
res.status = 200;
res.message = 'File uploaded!';
return resp.send(res);
});
};
は、その要求に、「ファイル」と呼ばれるパラメータが後者の場合には送信されていないようです。
完全なURLを使用してください。 –
FYI: 'async:false、' *メインスレッドの同期要求は推奨されません* - 避けてください –
'ファイルは「後のケースではファイルが送信されていません」フォームを見ずに、それは真の謎です –