programing

FileUpload.hasFile은 항상 False입니다.

muds 2023. 5. 21. 12:00
반응형

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

반응형