文件上传问题-如何解决
本文关键字:解决 何解决 问题 文件 | 更新日期: 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
}
}