In der Webentwicklung ist es häufig notwendig, das "Download" -Modul zu entwickeln. Hier ist ein einfaches Beispiel.
Verwenden Sie auf der Serverseite die Entwicklung von Java:
@RequestMapping (value = "download.html", method = requestMethod.get) public void download (String ressourceId, httpServletRequest-Anforderung, httpServletResponse-Antwort) {response.setContentType ("charset = utf-8"); Datei Datei = neue Datei (Pfad); response.setheader ("Inhaltsdisposition", "Anhang; Dateiname = a"); BufferedInputStream Bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; try {fis = new FileInputStream (file.getabsolutepath ()); Bis = neuer BufferedInputStream (FIS); fos = response.getOutputStream (); BOS = neuer BufferedOutputStream (FOS); int bytesRead = 0; byte [] buffer = new Byte [5 * 1024]; while ((byteSread = Bis.read (puffer))! = -1) {bos.write (puffer, 0, byteSread); } bos.flush (); } catch (e e) {} endlich {try {Bis.close (); bos.close (); fos.close (); fis.close (); } catch (ioException e) {e.printstacktrace (); }}}Wenn wir diese Adresse im vorderen Ende anfordern, findet der Server zuerst die Datei, legt den Antwortheader fest und gibt sie dann über den Stream auf die Browserseite aus.
Wenn der Browser im Header findet, dass der Körper der Antwort eine Stream -Datei ist, ruft automatisch das Speichern als Fenster auf, um den Benutzer den Download zu speichern.
Ein Schlüssel hier ist die Headereigenschaft der Inhaltsdisposition. Inhaltsdisposition ist eine Erweiterung des MIME-Protokolls, um anzuzeigen, wie der Client die Anhangsdatei anzeigen lässt.
Es kann auf zwei Werte eingestellt werden:
Inline // online öffnen
Anhang // als Anhang herunterladen
Hier setzen wir den Wert für den Anhang, damit er als Anhang erkannt und heruntergeladen werden kann.
Die obigen Gespräche darüber, wie man auf die Serverseite schreibt, und die folgenden Gespräche darüber, wie das Front-End anfordern.
Es gibt drei Möglichkeiten, Front-End anzufordern:
1.Form
<form action = 'download.html' methode = 'post'> <Eingabe type = 'sure'/> </form>
2.Inrame
var iframe = "<iframe style = 'display: none' src = 'download.html'> </iframe>" body.Append (iframe);
Wenn ein Iframe an den Körper angehängt wird, wird der Download -Link automatisch angefordert.
3.open
window.open ("download.html");