我試圖找到與HTML/JavaScript的/ C#代碼一個很好的例子就只上傳一個文件到服務器上把它保存在服務器上的目錄提供指導。我的代碼給我我的變量,'文件',當我調試它爲空。道場文件上載C#MVC.NET HttpPost沒有上傳
HTML表單:
<form id="uploadForm" method="post" data-dojo-type="dijit/form/Form" enctype="multipart/form-data">
<input
id="fileUploadInput"
type="file"
name="fileUploadInput"
>
<br />
<br />
<button
id="fileUploadButton"
data-dojo-attach-point="fileUploadButton"
onClick="click"
>
Upload
</button>
</form>
道場/ JavaScript代碼:
ioIframe.send({
url: this.proxyPostFile,
form: "uploadForm",
method: "POST",
handleAs: "text",
// Callback on successful data call:
load: function (response, ioArgs) {
return response;
},
// Callback on errors
error: function (response, ioArgs) {
console.info(response)
}
});
C#代碼:
[HttpPost]
public JsonResult Upload(HttpPostedFileBase file)
{
JsonResult FileData = null;
if (Request != null)
{
try
{
if (file!=null && file.ContentLength > 0)
{
... do some stuff with the file
}
}
catch (Exception ex)
{
Dictionary<string,string> error = new Dictionary<string,string>();
error.Add("error", "ERROR:" + ex.Message.ToString());
FileData = Json(error);
}
}
else
{
Dictionary<string,string> callResponse = new Dictionary<string,string>();
callResponse.Add("filename", "You have not specified a file.");
FileData = Json(callResponse);
}
return FileData;
}
任何想法或幫助將不勝感激。
謝謝
您的文件輸入具有'name =「fileUploadInput」',它與方法('file')中的參數名稱不匹配。他們需要匹配。但事實上,你返回一個'JsonResult'表明你想要使用Ajax,在這種情況下,請參考[這個答案](http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of -model到FORMDATA和-獲得-IT-在-MVC/29293681#29293681) - 你需要使用'FormData'並設置正確的AJAX選項 –
@StephenMuecke這會工作,如果我可以使用jQuery的,但不幸的是我正在使用Dojo。不過謝謝。 –
這並不改變的事實,你的'name'屬性和方法的參數不匹配 - 他們需要:) –