2011-07-25 81 views
1

我在我的web应用程序中有一个FileUpload,但是当“提交”被点击时,它似乎丢失了文件或者其他东西而不是名字。因此,如果例如我有C:\ me \ Documents \ myfile.jpg,我可以捕获名称myfile.jpg,但在评估此行时显示“无法找到文件”(在我将鼠标悬停在此行上时处于调试模式下) ...FileUpload Returning Null

这是我的提交按钮

if ((myID == 0 || rbUploadImg.Checked == true) && fuImage.PostedFile.FileName.Length > 0) 

下面是ASPX,并决定耐候显示上传的.cs的代码也复选框或不

 <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) 
{ 

} 

谢谢您的帮助

+2

你有没有包含上述所有标记的UpdatePanel? –

+0

有两种情况:当我添加UpdatePanel时返回null,当我删除它..“无法找到文件”,所以我不知道我在想什么 – user710502

回答

1

只要您有其他控件为页面做回发,此功能将无法使用。 FileUpload控件最初使用带有类型文件的输入HTML标记。当页面回发时,服务器控件无法在输入控件中设置文件路径值。由于安全限制,这不能完成。

我建议你使用Javascript(客户端)来显示/隐藏面板。

0

我可能是错的,但我认为你需要使用FileUpload.SaveAs方法能够访问它。当你按下提交按钮时,FileUpload清除一个文件。在点击提交按钮后,您应该将该文件放在临时目录中以便访问它。

当您使用UpdatePanel时也会发生这种情况。 UpdatePanel刷新并且FileUpload丢失张贴的文件。

+0

我试过这个没有运气 – user710502