【问题标题】:Invisible FileUpload control causes error on javascript postback in IE不可见的 FileUpload 控件导致 IE 中的 javascript 回发错误
【发布时间】: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


【解决方案1】:

IE(仅限)不允许发送带有隐藏文件上传输入的表单是无法解决的安全问题。非常感谢您的帮助。

【讨论】:

  • 我明白了。触发点击不是问题,但引发错误的是表单提交。
猜你喜欢
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
相关资源
最近更新 更多