【问题标题】:File Upload control in update Panel Always returns false更新面板中的文件上传控件始终返回 false
【发布时间】:2011-04-01 10:54:11
【问题描述】:

我在更新面板中有一个detailsView。在详细信息视图中我有一个FileUpload 控件和一个按钮btn_Upload。在点击事件中我已经编写了代码:

if(fileUploadControl.HasFile)
{
    var fileName = fileUploadControl.FileName;
}

总是返回false,有人能告诉我为什么吗?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    UpdatePanel 中的 FileUpload 会导致提交,但出于安全原因,它不会起作用 - 没有浏览器会允许 javascript 访问我们文件系统中的随机文件。我建议你改用这个http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx 来做你想做的事。

    另一个解决此问题的人在博客上写了here

    【讨论】:

    • 如果它导致提交,那么为什么它不起作用?如果它是通过 input type="file" 提交的,那么为什么 javascript 会访问文件系统上的随机文件?
    • 在后台 ASP.NET javascript 阻止提交完成,然后改为执行 XMLHTTP 发布。正是这个 javascript 获取更新面板中所有字段的值,并通过 XHR 请求将它们发送到服务器。因此,此 javascript 在遇到 [input type=file] 时会跳过该字段,因为它无法从中获取值(因为浏览器安全性)浏览器不允许 ASP.NET javascript 访问用户在 [input类型=文件]。
    【解决方案2】:

    这只是更新面板中的 FileUpload 控件的问题。要使其正常工作,您需要进行完整的回发。或者使用替代方法

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2013-02-22
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多