2017-09-11 1 views
-2

Ich bin eine vb.net-Website geerbt und versuche, eine Seite hinzuzufügen, die das Herunterladen von PDF-Dateien vom Server ermöglicht.Datei ohne ASP-Steuerelemente herunterladen

Das war mein ursprünglicher Versuch, dies zu tun: Clickable Link Not appearing on page from generated anchor tag und es fehlgeschlagen, weil ich ein Anker-Tag in Javascript mit der runat="server" generieren.
Ich verstehe jetzt, warum das nicht funktioniert.

So hat sich meine Frage geändert: Wenn ich einen einfachen Anker-Tag wie dieses:

<a href='download.aspx?type=inspection&file=NNNNNN.pdf'>Download NNNNNN.pdf</a>` 

Was download.aspx ist und download.aspx.vb aussehen?

Muss ich irgendetwas in IIS ändern, um darauf aufmerksam zu machen, dass es sich um eine gültige URL handelt?

Ich frage diese Frage, wie dies ohne ASP-Steuerelemente zu tun, da die Beispiele, die ich im Web finden alle auf ASP-Steuerelemente beruhen.

Ich bin ein Windows/IIS/vb.net noob also bitte so spezifisch wie Sie in der Antwort sein können.

Diese Frage Reading a binary file and using Response.BinaryWrite() beantwortet meine Frage nicht, weil es Code-Fragmente und nicht ganze Dateien ist. Ich bin zu vb.net zu neu, um zuversichtlich zu sein, diese Fragmente in einer Datei zusammenzusetzen und zu debuggen.

+0

Was genau funktioniert nicht? Mir ist nicht klar, wo du steckst. Alles, was Sie hier zeigen, ist ein Link zu einer URL. Haben Sie die Seite unter dieser URL implementiert? Scheitert etwas? – David

+0

Werfen Sie einen Blick auf https://StackOverflow.com/q/1300729/656243 –

+0

Wo ist die PDF-Datei auf dem Server gespeichert? In einer Datenbank oder auf dem Dateisystem des Webservers? Ist die PDF-Datei ein "statisches" Dokument (d. H. Vollständig unter Kontrolle des Webmasters) oder ist es etwas, das von Web-Benutzern hochgeladen werden kann? –

Antwort

2

Wie sieht download.aspx ... aus?

Dies könnte die Gesamtheit der download.aspx Datei sein:

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="download.vb" %> 

Was bedeutet ... download.vb aussehen?

Etwas wie folgt aus:

Imports System; 
Imports System.Web; 

Public Partial Class Download Inherits System.Web.UI.Page 

    Protected Sub Page_Load(sender As Object sender, e As EventArgs) 
     Response.Clear() 
     Response.ClearHeaders() 
     Response.ClearContent() 

     Response.AddHeader("Content-Disposition", "attachment; filename=YourFileNameHere") 
     Response.ContentType = "content type here (ie: application/x-pdf)"; 

     'Load and write the file data to the Response stream here 

     Response.End();  
    End Sub 
End Class 

Sie können auch eine (kleine) Auftrieb Leistung erhalten, indem eine ein Httphandler (* .ashx) anstelle einer Seite.

+0

Hier ist die Liste der Dinge, die ich anders gemacht habe als die Antwort, die ich angenommen habe: a) Ändern Sie "Class Download" in "Class MY_PATH_Download", b) Ändern Sie "CodeFile =" download.vb "" in "CodeFile =" Download.aspx.vb "Inherits = "MY_PATH_Download" " –

Verwandte Themen