Maison >interface Web >js tutoriel >Exemple de téléchargement de pièces jointes à l'aide des compétences Java et javascript_javascript

Exemple de téléchargement de pièces jointes à l'aide des compétences Java et javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:39:321359parcourir

En développement web, il est souvent nécessaire de développer le module "téléchargement". Un exemple simple est donné ci-dessous.

Côté serveur, utilisez le développement java :

@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(); 
} 
} 
}

Lorsque nous demandons cette adresse sur le front-end, le serveur trouve d'abord le fichier, définit l'en-tête de réponse, puis l'envoie au navigateur via le flux.

Si le navigateur constate que le corps principal de la réponse est un fichier de flux dans l'en-tête, il appellera automatiquement la fenêtre Enregistrer sous pour permettre à l'utilisateur d'enregistrer le téléchargement.

La clé ici est l'attribut d'en-tête Content-Disposition. Content-Disposition est une extension du protocole MIME et est utilisé pour indiquer au client comment afficher le fichier joint.

Il peut être défini sur deux valeurs :

en ligne //Ouvrir en ligne

pièce jointe //Télécharger en pièce jointe

La valeur que nous définissons ici est pièce jointe, elle peut donc être reconnue comme pièce jointe et téléchargée.

Ce qui précède décrit comment écrire côté serveur, et ce qui suit décrit comment demander le front-end.

Il existe trois façons de faire des requêtes frontales :

1.Formulaire

<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);

Lorsque l'iframe est ajoutée au corps, le lien de téléchargement sera automatiquement demandé.

3.ouvrir

window.open("download.html");

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn