JQuery Ajax从客户端上传文件和其他值[重复]
Posted
技术标签:
【中文标题】JQuery Ajax从客户端上传文件和其他值[重复]【英文标题】:JQuery Ajax uploading a file and other values from client side [duplicate] 【发布时间】:2016-06-17 10:16:05 【问题描述】:我需要将文件上传到服务器并发送 GUID 值,这两者都需要完成操作。
是否可以用一个$.ajax
声明同时发送两者?
这是我正在使用的 Upload 操作方法的 sn-p
[HttpPost]
public ActionResult Upload()
HttpPostedFileBase file = Request.Files[0];
这是我用来将文件发送到服务器的 javascript 代码的 sn-p
function upload()
var formData = new FormData();
var totalFiles = document.getElementById("FileUpload").files.length;
for (var i = 0; i < totalFiles; i++)
var file = document.getElementById("FileUpload").files[i];
formData.append("FileUpload", file);
$.ajax(
type: 'post',
url: '/myController/Upload',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response)
alert('succes!!');
,
error: function (error)
alert("errror");
);
这段代码运行良好。该文件按预期上传,但现在我需要将GUID
发送到同一个控制器(上传)所以我想知道我是否可以在同一个$.ajax
语句中发送带有文件的GUID?
【问题讨论】:
formData.append('myGuid', '[GUID value here..]');
看看这个***.com/questions/34603739/…
是的,你可以用formData中的文件发送字符串,如上面Rory所示,你需要做的就是附加数据
谢谢你们的快速回答
【参考方案1】:
function upload()
var formData = new FormData();
var totalFiles = document.getElementById("FileUpload").files.length;
for (var i = 0; i < totalFiles; i++)
var file = document.getElementById("FileUpload").files[i];
formData.append("FileUpload", file);
formData.append("guid", theGuid);
$.ajax(
type: 'post',
url: '/myController/Upload',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response)
alert('succes!!');
,
error: function (error)
alert("errror");
);
在服务器端:
Request.Form["guid"];
Request.Files["FileUpload"];
【讨论】:
如何管理上传控制器中发送的数据?当我在控制器中检查 Request.Files 的值时,只有一个值“FileUpload”如何访问附加到 formData 的“guid”值? @vcRobe 我编辑了我的代码,看看它 感谢您的快速回答。它有效! 最佳且非常清晰的答案之一,也可在 MVC Core 2.2 上运行以上是关于JQuery Ajax从客户端上传文件和其他值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 FormData 和 jQuery 上传 Ajax 大文件无法发布数据
PHP和Ajax将文件路径上传到Mysql并将重命名的图像保存到文件夹失败
Codeigniter 图片上传使用 jquery 和 ajax 错误 [重复]