2014-01-08 52 views
0

我正在使用隱藏的iframe來上傳文件並嘗試從aspx的Page_Load中捕獲它。從隱藏的iframe使用文件上傳時Response.Files爲空

<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下得到任何東西的代碼。根本沒有標題。

請幫我一把。

回答

0

我盡我所能來重新創建您的情況,並使其工作。我唯一的區別在於你所擁有的是JS:在form.submit();之後我加了一個return false;來防止默認的回發。

因此,更新後的JS是這樣的(我假設你已經在flAddRequestFileclick()change()的事件處理程序的一些按鈕這一邏輯):

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;