2011-12-07 138 views
3

我必須使用FileUpload控件在Web應用程序中上傳.pdf文件。我試過這個代碼,但它有一些問題。誰能幫我這個?如何上傳PDF文件?

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"; 
} 
+0

ContentType!=文件擴展名 –

+0

該程序直接goin to else語句不執行其他語句 –

+0

是的,因爲ContentType永遠不會是「.pdf」,因爲這是一個文件擴展名,而不是內容類型。 –

回答

6

您應該重構您的代碼,以便它可以準確地告訴您上傳時出了什麼問題。類似這樣的:

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."; 
} 

我的猜測是瀏覽器沒有提供正確的內容/類型。嘗試上面的代碼,並告訴我們你得到的消息。

+0

是這個wrkng對我罰款TY ....我有網頁上的「顯示文件」(超鏈接按鈕),當我點擊它應該顯示PDF文件我怎麼能做到這一點 –

+0

我不能夠做的感覺你評論。你能再次問你的問題嗎? – SolutionYogi

+0

文件上傳(上傳文件)演出文件(超鏈接) 提交(點擊按鈕),這是我的網頁看起來如何,當我在「演出文件」點擊鏈接就應該告訴我的PDF文件我已經upoaded –

3
<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..."; 
      } 

     } 
3

您只需更換你的下面的代碼行

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

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

和你的代碼是工作的罰款。

+0

nope m再次發生同樣的錯誤 –

+0

我做了你的代碼的副本只是改變這一行,它在我的環境中工作。 – sikender

+0

你能把你的錯誤行粘貼在這裏嗎? – sikender