2011-12-07 7 views
3

Je dois télécharger un fichier .pdf dans une application Web en utilisant le contrôle FileUpload. J'ai essayé ce code, mais il a quelques problèmes. Est-ce que quelqu'un peut m'aider avec ça?Comment télécharger un fichier 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! = Extension de fichier –

+0

le programme passe directement à l'autre instruction ne pas exécuter les autres instructions –

+0

Oui, car ContentType ne sera jamais ".pdf", puisqu'il s'agit d'une extension de fichier et non d'un type de contenu . –

Répondre

6

Vous devez restructurer votre code afin qu'il puisse vous dire exactement ce qui ne va pas avec le téléchargement. Quelque chose comme ceci:

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

Je suppose que le navigateur ne fournit pas le contenu/type correct. Essayez le code ci-dessus et dites-nous le message que vous recevez.

+0

oui ce wrkng bien pour moi ty .... j'ai un "Afficher le fichier" (bouton Hyper lien) sur la page Web quand je clique sur le fait qu'il devrait montrer le fichier pdf comment puis-je faire cela –

+0

Je ne suis pas en mesure de donner un sens à votre commentaire. Pouvez-vous poser à nouveau votre question? – SolutionYogi

+0

fileupload (pour télécharger le fichier) showfile (Hyperlien) Soumettre (clic de bouton) voici comment ma page Web ressemble quand je clique sur le lien "showfile" il devrait me montrer le fichier pdf que j'avais chargé –

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

vous suffit de remplacer votre ligne de code ci-dessous

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

avec ce

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

et votre code fonctionne très bien.

+0

non m obtenir encore la même erreur –

+0

J'ai fait une copie de votre code juste changer cette ligne et cela fonctionne dans mon environnement. – sikender

+0

Pouvez-vous s'il vous plaît coller votre ligne d'erreur ici? – sikender

Questions connexes