更新を行わずに ajax、jquery、formdata を含むファイルをアップロードしようとしています。残念ながら、コントローラーでファイルを読み取ろうとすると、ファイルが空であると表示され、その理由がわかりません。
div「uploadForm」はフォームそのものです。
JQuery:
$("#submitImage").click(function (event) {
event.preventDefault();
$('#uploadImage #submitImage').val('Uploading File..');
var formData = new FormData($('#uploadForm'));
$.ajax({
url: "Upload",
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (data) {
alert(data);
}
});
});
HTML:
@using (Html.BeginForm("Index", "Upload", FormMethod.Post, new { enctype = "multipart/form-data", @id="uploadForm"}))
{
<input type="submit" value="Upload Image" id="submitImage"/>
<input type="file" name="file" id="bannerImage" value="Choose file" />
}
コントローラ:
[AcceptVerbs(HttpVerbs.Post)]
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
Functions Functions = new Functions();
string Filename = Functions.GenerateUniqueFileName();
if (file == null)
{
ViewBag.Test = "Ajax call complete, but the file is empty";
}
else
{
ViewBag.Test = "Ajax call complete, and the file isn't empty!";
}
return View();
}
}
ライブ デモ: http://upload.jamieknoef.nl/ (ファイルの選択とファイルのアップロード ボタンのみを使用する必要があります)
編集:修正済み、答えについては私の他の投稿を参照してください!
前もって感謝します!