【问题标题】:Requesting Files from asp.net Page从 asp.net 页面请求文件
【发布时间】:2020-12-07 18:12:33
【问题描述】:

我有一个 Asp.net 页面,您可以从中上传我需要在代码隐藏中处理和上传的图片。现在,如果我尝试使用Request.Files 获取所有上传的文件,我得到的计数为 0。如果我使用 javascript 检查,那么它确实告诉我有一个文件,那么我怎样才能在代码隐藏中获取该文件?

Asp.net 代码

<div class="custom-file">
   <input type="file" ID="FileUploadPictureStudent" class="custom-file-input"
   aria-describedby="FileUploadPictureStudent"name="FileUploadPictureStudent" runat="server"
   onchange="fileUploadhandeler(this);" />
   <asp:Label runat="server" class="custom-file-label" for="FileUploadPictureStudent" Text="Choose file" ID="Fileuploadhelper"></asp:Label>
</div>

Vb.Net 代码

Dim HelperLabel = Request.Files.Count.ToString()

输出页面为0

在控制台中使用命令document.getElementById('FormViewAddStudent_FileUploadPictureStudent').files 输出Javascript

FileList {0: File, length: 1, item: function} = $1

提前致谢

【问题讨论】:

  • 您是否尝试过改用&lt;asp:FileUpload&gt; 控件? (另外,为了确保您没有使用&lt;asp:UpdatePanel&gt;,因为您不能以这种方式发送文件)
  • 是的,我确实尝试过,但结果相同。我正在使用&lt;asp:UpdatePanel&gt; 所以猜这就是它不让我获取文件的原因。有没有办法使用&lt;asp:UpdatePanel&gt; 并仍然获取文件?因为即使我尝试使用 &lt;asp:FileUpload&gt; 并检查 FileUpload.HasFile 它返回 False。
  • 不,抱歉,这是更新面板的限制之一
  • 哦,好吧,无论如何感谢您的帮助。

标签: javascript asp.net vb.net file-upload


【解决方案1】:

根据我的评论,OP 已确认他们正在尝试使用 &lt;asp:UpdatePanel&gt; 中的文件上传。

很遗憾,这不起作用,因为 UpdatePanel 使用 AJAX 传输数据,并且出于浏览器安全原因,文件不能成为其中的一部分。

您的主要选择是在上传文件时(使用&lt;Triggers&gt;&lt;asp:PostBackTrigger&gt;)使页面进行完整的回发,尽管我完全理解这是否不会产生出色的用户界面。

另一种选择是将文件上传到单独的 .aspx 文件中,并通过 &lt;iframe&gt; 将其显示在屏幕上...虽然同样,这也有许多缺点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2011-07-12
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多