FileUpload.hasFile은 항상 False입니다.
나는 있습니다FileUpload
제어(그리고 그것은 안에 있지 않습니다.UpdatePanel
) 및 그것의hasFile
속성은 항상False
.
<asp:FileUpload ID="certificateUploader" runat="server"/>
무슨 생각 있어요?
업데이트 패널에 대한 트리거 추가
<Triggers>
<asp:PostBackTrigger ControlID="btnCertificateUpload" />
</Triggers>
업로드 버튼을 클릭하면 강제로 게시됩니다.
또한 아래 행을 Page_Load에 추가합니다.
Page.Form.Attributes.Add("enctype", "multipart/form-data");
AJAX =>를 사용하여 파일을 업로드할 수 없습니다. 이 업데이트 패널은 서버에 AJAX 요청을 전송하므로 업데이트 패널 내에 파일 업로드 컨트롤을 배치하면 안 됩니다.
파일 업로드 컨트롤을 사용하여 파일도 업로드했지만 HasFile 속성이 false를 반환했습니다.파일 업로드를 실행합니다.빈 파일을 업로드하면 HasFile도 false가 됩니다.이 경우 업로드할 일부 텍스트를 파일에 추가하면 Has file 속성이 true로 반환됩니다.
@dbFrame에서 제공한 예를 보완합니다.IT 지원:
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="UploadButton" runat="server" Text="Upload Selected File" OnClick="UploadButton_Click" />
<asp:Label ID="UploadDetails" runat="server" Text=""></asp:Label>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="UploadButton" />
</Triggers>
</asp:UpdatePanel>
뒤에 있는 코드(c#)
protected void UploadButton_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile == false)
{
UploadDetails.Text = "Please first select a file to upload...";
}
else
{
string FileName = FileUpload1.FileName;
UploadDetails.Text = string.Format(
@"Uploaded file: {0}<br />
File size (in bytes): {1:N0}<br />
Content-type: {2}",
FileName,
FileUpload1.FileBytes.Length,
FileUpload1.PostedFile.ContentType);
// Save the file
string filePath = Server.MapPath("~/Brochures/" + FileUpload1.FileName);
FileUpload1.SaveAs(filePath);
}
}
업로드하려는 파일에 대한 사용 권한(또는 더 구체적일 필요는 없음)에 대한 내용이 포함된 내내 사용자에게 충분한 사용 권한을 부여했고 모든 것이 잘 진행되었습니다.
당신의 도움과 게시물에 감사드립니다.
업데이트 패널에서 단추를 제거할 수 있습니다. 제가 알기로는 업데이트 패널은 항상 다른 업데이트 패널 내부의 무언가가 업데이트될 때 업데이트되므로 단추가 포스트백되면 파일 업로드 컨트롤도 포스트백되어 파일 참조가 손실됩니다.
때때로 파일 업로드에 문제가 있습니다.단순 입력을 사용할 수 있습니다.
<input id="filMyFile" type="file" runat="server"></input>
코드에서 서버에 파일 저장:
HttpPostedFile myFile = filMyFile.PostedFile;
string fullPath=Server.MapPath("~/UploadDocuments/") + myFile.FileName;
myFile.SaveAs(fullPath);
파일은 ASP.NET 응용프로그램(서버)의 UploadDocuments 폴더에 저장됩니다.
언급URL : https://stackoverflow.com/questions/9682737/fileupload-hasfile-is-always-false
'programing' 카테고리의 다른 글
속성 이름으로 개체의 속성 값을 가져오는 방법은 무엇입니까? (0) | 2023.05.21 |
---|---|
SQL 날짜를 자정으로 반올림 (0) | 2023.05.21 |
mongodb가 Mac에서 실행되고 있는지 확인하는 방법은 무엇입니까? (0) | 2023.05.21 |
리소스(.resx) 파일의 이점은 무엇입니까? (0) | 2023.05.16 |
이클립스:프로젝트 탐색기에서 모든 프로젝트가 사라졌습니다. (0) | 2023.05.16 |