【发布时间】:2012-08-17 00:38:56
【问题描述】:
我有带有 Fileupload 控件和图像的 asp.net webforms 页面。当用户单击图像时,我触发 FileUpload 单击,当单击确定时,我在客户端调用 __doPostBack。如果 FileUpload 可见,它工作正常,但是当我设置 style='visibility: hidden' 或 display: none - javascript 给出错误:访问被拒绝!它只在 IE 中重现,而不是 FF 或 chrome。谁能告诉我如何避免这种情况并将文件发布到服务器?我试过 input type='file' 和 runat='server', non-server input-file - 结果是一样的......
HTML:
<input id="_ctl00_fuplImage" type="file" style="visibility: hidden" name="$ctl00$fuplImage">
JavaScript:
var fileupload = $('#<%= fuplImage.ClientID %>');
$('#<%= imgPhoto.ClientID %>').click(function() {
fileupload.click();
});
fileupload.change(function() {
var val = fileupload.val();
if (val == '') return;
__doPostBack(fileupload.attr('id'), val);
});
【问题讨论】:
-
你能发布为那个 FileUpload 控件生成的 HTML 源代码吗?
-
...
-
如何触发 FileUpload 点击?似乎某种安全机制会阻止您触发对隐藏文件字段的点击。
-
var fileupload = $('#'); $('#').click(function () { fileupload.click(); }); fileupload.change(function () { var val = fileupload.val(); if (val == '') return; __doPostBack(fileupload.attr('id'), val); });
-
我无法重现您的问题。 现场演示: jsfiddle.net/NjgDR/3 我已经在 IE7、IE8 和 IE9 中测试过这个演示。当我单击图像时,“选择文件”窗口正常弹出。不会抛出“拒绝访问”错误。
标签: asp.net .net internet-explorer webforms