MvcでJquery ajaxで複数のファイルをアップロードしようとしていますが、いくつか問題があります。ここで Asp.net Mvc複数のファイルをajaxでいくつかのエラーでアップロードする
その私のHTMLデザインとコード..
<div id="fileinputdiv">
<input type="file" name="mainfile" id="mainfile" onchange="OnValueChanged(this)">
</div>
<div id="tab_images_uploader_container" class="text-align-reverse margin-bottom-10">
<span class="btn green fileinput-button">
<i class="fa fa-plus"></i>
<span><a href="#" id="AddFile"> New Image... </a></span>
</span>
<a id="tab_images_uploader_uploadfiles" class="btn btn-primary">
<input type="button" value="Upload Images" id="btnUpload" name="btnUpload" />
</a>
</div>
Javascriptのコード...
<script type="text/javascript">
var files = []; // Creating array for list of files
function OnValueChanged(fileUploadItemId) {
var selectedvalue = $(fileUploadItemId).val();
files.push(selectedvalue);
}
$(document).ready(function() {
$("#AddFile").click(function (e) {
e.preventDefault();
$(" <input type='file' onchange='OnValueChanged(this)'>").appendTo("#fileinputdiv");
})
$("#btnUpload").on("click", function() {
var fileData = new FormData();
for (var i = 0; i < files.length; i++) {
fileData.append(files[i].name, files[i]);
}
$.ajax({
url: "/Product/UploadFiles",
type: "POST",
contentType: false,
processData: false,
data: fileData,
success: function (result) {
alert(result);
},
error: function (err) {
alert(err.statusText);
}
});
})
});
そして最後に、私の機能...
[HttpPost]
public ActionResult UploadFiles()
{
if (Request.Files.Count > 0)
{
try
{
HttpFileCollectionBase files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFileBase file = files[i];
string fname;
if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
{
string[] testfiles = file.FileName.Split(new char[] { '\\' });
fname = testfiles[testfiles.Length - 1];
}
else
{
fname = file.FileName;
}
fname = Path.Combine(Server.MapPath("~/ProductImages/"), fname);
file.SaveAs(fname);
}
return Json("File Uploaded Successfully!");
}
catch (Exception ex)
{
return Json("Error occurred. Error details: " + ex.Message);
}
}
else
{
return Json("No files selected.");
}
}
私は「ファイルのアップロード」ボタンをクリックしたときに私の質問はUploadFiles()関数にAJAXを送るなしすべてのデータは、私はいつも「いいえファイル選択ません」というエラーを取得しているが、私はこのコード
for (var i = 0; i < files.length; i++) {
alert(files[i]);
}
でテスト
私は選択されたすべてのファイルを表示することができます。私は見つけることができなかった問題はどこにありますか?
私はこれをしないことをお勧めします。 ASP.Net Core MVCでは、Web APIがASP.Netの一部として統合されているため、あなたはもうAjaxリクエストでそのファイルにアクセスできなくなることがあります。 (アップグレードを予定している場合に備えて)。アップロードのための別個のページを作成し、IFrame、またはツールバーを使用した新しいポップアップウィンドウを使用して表示することをお勧めします。あなたが興味を持っているなら、私は自分の解決策をあなたと共有します。 – Transcendent
あなたの解決策を教えてもらえますか? – jackquin
@Transcendentこんにちは助けてもらえますか? – jackquin