FileUpload Returning Null
本文关键字:Null Returning FileUpload | 更新日期: 2023-09-27 18:03:19
我在我的web应用程序中有一个FileUpload,但是当"提交"被点击时,它似乎丢失了文件或其他东西,但不是名称。因此,如果例如我有C:'me'Documents'myfile.jpg,我能够捕获名称myfile.jpg,但在评估这一行时说"找不到文件"(在调试模式下,当我悬停在这一行时)…
这是我的提交按钮
if ((myID == 0 || rbUploadImg.Checked == true) && fuImage.PostedFile.FileName.Length > 0)
下面是。cs中用于决定是否显示上传者的aspx和复选框的代码
<asp:Panel ID="pnlImageEdit" runat="server" Visible="false">
<table id="tblShowImage" border="0" cellpadding="0" cellspacing="20" runat="server">
<tr>
<td>
<asp:Image ID="Image1" runat="server" />
</td>
<td>
<div class="mytyle">
<asp:RadioButton ID="rbCurrentImage" Text="Keep Current Image" runat="server" GroupName="Product Image" AutoPostBack="True" OnCheckedChanged="rbCurrentImage_CheckedChanged" Checked="True" />
<asp:RadioButton ID="rbUploadImg" Text="Upload New Image" runat="server" GroupName="Image" AutoPostBack="True" OnCheckedChanged="rbImage_CheckedChanged" />
</div>
</table>
</asp:Panel>
<asp:Panel ID="pnlImageAdd" runat="server" Visible="false">
<div>
Select an Image :<asp:FileUpload ID="fuImage" runat="server" EnableViewState="true" />
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1"
runat="server"
ControlToValidate="fuCollectionImage"
CssClass="Error" Display="dynamic" ValidationExpression=".*('.[Jj][Pp][Gg]|'.[Gg][Ii][Ff]|'.[Jj][Pp][Ee][Gg]|'.[Pp][Nn][Gg])"
ErrorMessage="Please select a valid JPEG, JPG, PNG or GIF image">
</asp:RegularExpressionValidator>
</div>
</asp:Panel>
在我的cs文件中的复选框
protected void rbNewImage_CheckedChanged(object sender, EventArgs e)
{
pnlImageAdd.Visible = true;
}
protected void rbImage_CheckedChanged(object sender, EventArgs e)
{
}
谢谢你的帮助
只要您有其他控件对页面进行post回发,这将不起作用。FileUpload控件最初使用类型为file的输入HTML标记。当页面发回时,服务器控件无法在输入控件中设置文件路径值。由于安全限制,不能这样做。
我建议你使用Javascript(客户端)来显示/隐藏面板
我可能错了,但我认为您需要使用FileUpload.SaveAs
方法才能访问它。当您按下提交按钮时,将清除FileUpload中的文件。您应该将文件放在一个临时目录中,以便在单击提交按钮后访问它。
当你使用UpdatePanel时也会发生这种情况。UpdatePanel刷新,FileUpload丢失已发布的文件。