2016-04-18 3 views
0

Ich habe ein virtuelles Verzeichnis auf dem IIS-Server (Windows Server 2012) erstellt, mit dem ich auf alle PDF-Dateien in einem bestimmten Ordner zugreifen kann, auf den der Client zugreifen muss enter image description herePDF vom Server auf dem Clientcomputer anzeigen C# -Webanwendung ASP.Net

Dann schrieb ich eine Methode, die, nachdem der Benutzer auf einen Link Blick in das Raster enter image description here

der Code, den ich unter schrieb: enter image description here

enter image description here

Nach meiner C# Web-Anwendung Server Veröffentlichung der Web-Anwendung auf dem Client-Rechner als zugreift, klicke ich auf der fertiggestellte Verbindung der Hoffnung, dass es auf Client-Rechner herunterladen würde, sondern es Downloads auf Server-Rechner enter image description here

Bitte helfen Sie mir, Datei auf virtuellen Ordner oder Laufwerk auf Client-Computer zu laden/zu öffnen.

Ich habe die heruntergeladene PDF-Datei in den folgenden Pfad auch und legen Sie den Ordner geteilt: enter image description here

+0

ist das mvc oder plain asp.net app? – cyberhubert

+0

Plain asp.net app – user196830

Antwort

1

ich denke, es kann hilfreich sein für Sie als pdf auf Kundenseite zum Download:

string filepath = @"C:\yourfile.pdf"; 
    string filename = Path.GetFileName(filepath); 
      System.IO.Stream stream = null; 
      try 
      { 
       // Open the file into a stream. 
       stream = new FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); 
       // Total bytes to read: 
       long bytesToRead = stream.Length; 
       Response.ContentType = "application/octet-stream"; 
       Response.AddHeader("Content-Disposition", "attachment; filename=" + filename); 
       // Read the bytes from the stream in small portions. 
       while (bytesToRead > 0) 
       { 
        // Make sure the client is still connected. 
        if (Response.IsClientConnected) 
        { 
         // Read the data into the buffer and write into the 
         // output stream. 
         byte[] buffer = new Byte[10000]; 
         int length = stream.Read(buffer, 0, 10000); 
         Response.OutputStream.Write(buffer, 0, length); 
         Response.Flush(); 
         // We have already read some bytes.. need to read 
         // only the remaining. 
         bytesToRead = bytesToRead - length; 
        } 
        else 
        { 
         // Get out of the loop, if user is not connected anymore.. 
         bytesToRead = -1; 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       Response.Write(ex.Message); 
       // An error occurred.. 

      } 
      finally 
      { 
       if (stream != null) 
       { 
        stream.Close(); 
       } 
      } 
+0

Ich erhalte eine Fehlerprotokoll Typ: ERROR Ausführungszeit: 18-Apr-2016 14: 17: 45,266 Quelle: Save To Client-Rechner Nachricht: Datei konnte nicht gefunden ‚C: \ PCR -20160214-0001-1.pdf '. Wie Sie aus dem obigen Bild sehen können, habe ich diese PDF-Datei in c: /. Ich habe Ihre Lösung für eine Methode namens SaveToClientMachine – user196830

+0

Sie sollten Ihre Datei in eine gemeinsam nutzbare Speicherort (dh ** inetpub **) und stellen Sie sicher, dass Ihre Anwendung ** Berechtigung ** für den Zugriff auf die Datei benötigt –

+0

Ich tat was Sie sagte, bitte beziehen Sie sich auf das letzte Bild in meiner Frage. Dieses Mal erhalte ich jedoch keine Fehlermeldung und trotzdem erscheint kein PDF. – user196830

Verwandte Themen