Как я могу загрузить файл PDF? - PullRequest
3 голосов
/ 07 декабря 2011

Мне нужно загрузить файл .pdf в веб-приложение, используя элемент управления FileUpload. Я пробовал этот код, но у него есть некоторые проблемы. Кто-нибудь может мне помочь с этим?

 protected void Button1_Click(object sender, EventArgs e)
 {
      if (FileUpload1.HasFile)
      {
           if (FileUpload1.PostedFile.ContentType == ".pdf")
           {
                string path = Server.MapPath(".") + "\\" + FileUpload1.FileName;
                FileUpload1.PostedFile.SaveAs(path);
                Label6.Text = "File Uploaded Successfully...";
                StreamReader reader = new StreamReader(FileUpload1.FileContent);
                string text = reader.ReadToEnd();
           }
           else
                Label6.Text = "Upload .pdf File";
      }
      else
           Label6.Text = "Upload file";
 }

Ответы [ 3 ]

6 голосов
/ 08 декабря 2011

Вы должны реструктурировать свой код, чтобы он мог точно сказать вам, что не так с загрузкой. Примерно так:

 protected void Button1_Click(object sender, EventArgs e)
 {
    Label6.Text = ProcessUploadedFile();
 }

 private string ProcessUploadedFile()
 {
    if(!FileUpload1.HasFile)
        return "You must select a valid file to upload.";

    if(FileUpload1.ContentLength == 0)
        return "You must select a non empty file to upload.";

    //As the input is external, always do case-insensitive comparison unless you actually care about the case.
    if(!FileUpload1.PostedFile.ContentType.Equals("application/pdf", StringComparison.OrdinalIgnoreCase))
        return "Only PDF files are supported. Uploaded File Type: " + FileUpload1.PostedFile.ContentType;

    //rest of the code to actually process file.

    return "File uploaded successfully.";
 }

Я предполагаю, что браузер не предоставляет правильный контент / тип. Попробуйте приведенный выше код и сообщите нам сообщение, которое вы получите.

3 голосов
/ 07 декабря 2011

Вы просто замените строку кода ниже

if (FileUpload1.PostedFile.ContentType == ".pdf")

с этим

if (FileUpload1.PostedFile.ContentType == "application/pdf")

и ваш код работает нормально.

3 голосов
/ 07 декабря 2011
<INPUT id="FileUp" type="file" name="File1" runat="server">

      if(FileUp.PostedFile.ContentLength > 0)
        {
            string ext = System.IO.Path.GetExtension(FileUp.PostedFile.FileName);
            if(ext=="pdf"){
            string Filename=YourFileName+ext;
            FilePath=Server.MapPath("..") + "\\path\\toyourfile\\" + Filename;
            FileUp.PostedFile.SaveAs(FilePath);
            Label6.Text = "File Uploaded Successfully...";
            }

        } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...