繁体   English   中英

Request.Files始终为0

[英]Request.Files always 0

 <body> <form id="form1" runat="server" enctype="multipart/form-data"> <table id="tblAttachment"> </table> <input id="btnSubmit" type="button" value="button" /> </form> </body> 

动态插入FileUpload控件

 <script> $(document).ready(function () { var MaxAttachment = 1; $("#tblAttachment").append('<tr><td><input id=\\"Attachment_' + MaxAttachment.toString() + '\\" name=\\"file\\" type=\\"file\\" /><br><a class=\\"MoreAttachment\\">Additional Attachment</a></td></tr>'); $("#btnSubmit").on("click", UploadFile); }); </script> 

使用jQuery将数据发送到.ashx

  function UploadFile() { var kdata = new FormData(); var i = 0; //run through each row $('#tblAttachment tr').each(function (i, row) { var row = $(row); var File = row.find('input[name*="file"]'); alert(File.val()); kdata.append('file-' + i.toString(), File); i = i + 1; }); sendFile("fUpload.ashx", kdata, function (datad) { }, function () { alert("Error in Uploading File"); }, true); } 

在.ashx上,计数始终为零?

 public class fUpload : IHttpHandler { public void ProcessRequest(HttpContext context) { int k = context.Request.Files.Count; context.Response.Write(UploadMultipleFiles()); } 

Ajax请求

 function sendFile(requestUrl, dataPayload, successfunc, errorfunc, synchronousMode) { $.ajax({ url: requestUrl, type: "POST", dataType: "json", contentType: false, processData: false, cache: false, async: synchronousMode, data: dataPayload, success: successfunc, error: errorfunc }); } 

请检查..我在哪里做错了

具有enctype =“ multipart / form-data”的表单标签和每个fileUPload控件也具有唯一的id和name属性

谢谢

您要发送的是jQuery对象,而不是文件?

简而言之,您基本上是在这样做

var kdata = new FormData();

var File = row.find('input[name*="file"]'); // jQuery object

kdata.append('file-0', File);

您需要文件,而不是jQuery对象

var kdata = new FormData();

var File  = row.find('input[name*="file"]'); // jQuery object

var files = File.get(0).files[0]; // it not multiple

kdata.append('file-0', Files);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM