我正试图在两个场景中上传文件
首先:
<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#
后面的代码中的postingFile不是null
protected void btnUploadClick(object sender, EventArgs e)
{
HttpPostedFile postedFile= Request.Files[0];
}
第二
我想更改浏览按钮“text”,我已经知道了,不能直接这样做,所以我就这样解决了:
<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];
}
当我按下Button2时,fileDialog打开,我选择文件,一切都OK。
但是当我按下Button3来获取服务器端c#中的文件时,Request.Files[0]
为空
并且未发现任何文件。
我想要Request.Files[0]
,因为我想将它作为字节保存在数据库中
所以,如果你有任何想法,我会很感激
提前谢谢
答案 0 :(得分:1)
我在一个空白项目中做了相同的代码(第二个场景),这很好用。你也可以这样做并检查它。
这段代码可能会破坏这一点。检查母版页或当前页面的Page_Load()方法是否有破坏文件“回发”的内容。你可以尝试:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Page_Load code
}
}