asp.net MVC中的jQuery Ajax上传文件

我认为有一个文件

<form id="upload" enctype="multipart/form-data">

<input type="file" name="fileUpload" id="fileUpload" size="23" />

</form>

和一个ajax请求

$.ajax({

url: '<%=Url.Action("JsonSave","Survey") %>',

dataType: 'json',

processData: false,

contentType: "multipart/mixed",

data: {

Id: selectedRow.Id,

Value: 'some date was added by the user here :))'

},

cache: false,

success: function (data) {}

});

但是 没有文件。Ajax请求出了什么问题?

回答:

在ASP.Net MVC中使用AJAX上传文件

自HTML5以来情况发生了变化

document.getElementById('uploader').onsubmit = function () {

var formdata = new FormData(); //FormData object

var fileInput = document.getElementById('fileInput');

//Iterating through each files selected in fileInput

for (i = 0; i < fileInput.files.length; i++) {

//Appending each file to FormData object

formdata.append(fileInput.files[i].name, fileInput.files[i]);

}

//Creating an XMLHttpRequest and sending

var xhr = new XMLHttpRequest();

xhr.open('POST', '/Home/Upload');

xhr.send(formdata);

xhr.onreadystatechange = function () {

if (xhr.readyState == 4 && xhr.status == 200) {

alert(xhr.responseText);

}

}

return false;

}

public JsonResult Upload()

{

for (int i = 0; i < Request.Files.Count; i++)

{

HttpPostedFileBase file = Request.Files[i]; //Uploaded file

//Use the following properties to get file's name, size and MIMEType

int fileSize = file.ContentLength;

string fileName = file.FileName;

string mimeType = file.ContentType;

System.IO.Stream fileContent = file.InputStream;

//To save file, use SaveAs method

file.SaveAs(Server.MapPath("~/")+ fileName ); //File will be saved in application root

}

return Json("Uploaded " + Request.Files.Count + " files");

}

<form id="uploader">

<input id="fileInput" type="file" multiple>

<input type="submit" value="Upload file" />

</form>

以上是 asp.net MVC中的jQuery Ajax上传文件 的全部内容, 来源链接: utcz.com/qa/425913.html

回到顶部