从隐藏的iframe使用文件上载时,Response.Files为空

时间:2014-01-08 14:04:53

标签: c# ajax iframe

我正在使用隐藏的iframe上传文件并尝试从aspx的Page_Load中捕获它。

<input type="file" id="flAddRequestFile" name="RequestFileUpload" />

js就像:

var iframe = $('<iframe name="postiframe" id="postiframe" style="display: none" />');
$("body").append(iframe);
var form = $('#frm1');
form.attr("action", "/PresentationLayer/NewRequestFileUploadDialog.aspx");
form.attr("method", "post");
form.attr("enctype", "multipart/form-data");
form.attr("encoding", "multipart/form-data");
form.attr("target", "postiframe");
form.attr("file", $('#flAddRequestFile').val());
form.submit();

在NewRequestFileUploadDialog.aspx背后的代码中,我没有得到Request.Files下的任何内容。根本没有标题。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我尽力重新创造你的情况,然后我开始工作了。我所拥有的唯一区别在于JS:在form.submit();后我添加了return false;以防止默认的回发。

所以,更新的JS看起来像这样(我假设你在change()上的flAddRequestFileclick()的事件处理程序中有这个逻辑用于某个按钮):

var iframe = $('<iframe name="postiframe" id="postiframe" style="display: none" />');
 $("body").append(iframe);
 var form = $('#frm1');
 form.attr("action", "/PresentationLayer/NewRequestFileUploadDialog.aspx");
 form.attr("method", "post");
 form.attr("enctype", "multipart/form-data");
 form.attr("encoding", "multipart/form-data");
 form.attr("target", "postiframe");
 form.attr("file", $('#flAddRequestFile').val());
 form.submit();

 //this is what I added
 return false;