文件上传问题-如何解决

本文关键字:解决 何解决 问题 文件 | 更新日期: 2023-09-27 18:27:42

我正在尝试在两种情况下上传文件

第一:

<input  id="File2" runat="server" name="name" type="file" clientidmode="Static"  />
<asp:Button ID="Button4" runat="server"  clientidmode="Static" 
  Text="Go CodeBehind To Get Input Value" OnClick="btnUploadClick" />

这工作正常,并且C#后面的代码中postedFile不是null

protected void btnUploadClick(object sender, EventArgs e)
{
    HttpPostedFile postedFile= Request.Files[0];
}

第二:

我想把浏览按钮改为"文本",我已经知道了,不能直接这么做,所以我就这样处理了:

<b>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"  >
    <input  id="File1" runat="server" name="name" type="file" clientidmode="Static" onchange="setHiddenValue()" style=" visibility:hidden;" />
        <br />
        <input id="Button2" type="button" clientidmode="Static" onclick="triggerFileUpload()" value="HTML Button" />
        <br />
        <asp:Button ID="Button3" runat="server"  clientidmode="Static" Text="Go CodeBehind To Get Input Value" OnClick="btnUploadClick" />
        <script language="javascript">
            function triggerFileUpload() {
                document.getElementById("File1").click();
            }
        </script>
    </asp:Content>
<b>

protected void btnUploadClick(object sender, EventArgs e)
{
    HttpPostedFile postedFile= Request.Files[0];
}

当我按下按钮2文件对话框打开时,我选择文件和一切正常。

但当我按下按钮3在服务器端获取文件时,Request.Files[0]为空未发现任何已发布的文件。

我想要Request.Files[0],因为我想把它作为字节保存在数据库中

所以,如果你有任何想法,我会很感激

提前感谢

文件上传问题-如何解决

我在一个空白项目中做了相同的代码(第二个场景),这很好。你也可以这样做并检查它。

可能这段代码的某些内容正在破坏这一点。检查母版页或当前页page_Load()方法是否有破坏文件"回发"的内容。你可以试试:

protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      //Page_Load code
   }
}