In der Webentwicklung ist es oft notwendig, das „Download“-Modul zu entwickeln. Nachfolgend finden Sie ein einfaches Beispiel.
Verwenden Sie auf der Serverseite die Java-Entwicklung:
@RequestMapping(value = "download.html", method = RequestMethod.GET) public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) { response.setContentType("charset=UTF-8"); File file = new File(path); response.setHeader("Content-Disposition", "attachment; filename=a"); BufferedInputStream bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; try { fis = new FileInputStream(file.getAbsolutePath()); bis = new BufferedInputStream(fis); fos = response.getOutputStream(); bos = new BufferedOutputStream(fos); int bytesRead = 0; byte[] buffer = new byte[5 * 1024]; while ((bytesRead = bis.read(buffer)) != -1) { bos.write(buffer, 0, bytesRead); } bos.flush(); }catch(E e){ }finally { try { bis.close(); bos.close(); fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
Wenn wir diese Adresse im Frontend anfordern, findet der Server zuerst die Datei, legt den Antwortheader fest und gibt ihn dann über den Stream an den Browser aus.
Wenn der Browser feststellt, dass der Hauptteil der Antwort eine Stream-Datei im Header ist, ruft er automatisch das Fenster „Speichern unter“ auf, damit der Benutzer den Download speichern kann.
Der Schlüssel hier ist das Header-Attribut Content-Disposition. Content-Disposition ist eine Erweiterung des MIME-Protokolls und wird verwendet, um dem Client anzuweisen, wie die angehängte Datei angezeigt werden soll.
Es kann auf zwei Werte eingestellt werden:
inline //Online öffnen
Anhang //Als Anhang herunterladen
Der Wert, den wir hier festlegen, ist Anhang, sodass er als Anhang erkannt und heruntergeladen werden kann.
Oben wird beschrieben, wie Sie die Serverseite schreiben, und im Folgenden wird beschrieben, wie Sie das Frontend anfordern.
Es gibt drei Möglichkeiten, Front-End-Anfragen zu stellen:
1.Formular
<form action='download.html' method='post'> <input type='submit'/> </form>
2.iframe
var iframe = "<iframe style='display:none' src='download.html'></iframe>" body.append(iframe);
Wenn der Iframe an den Text angehängt wird, wird der Download-Link automatisch angefordert.
3.öffnen
window.open("download.html");