Maison  >  Article  >  Java  >  Explication détaillée sur la façon de télécharger et d'ouvrir les pièces jointes et les images de pages Web Java

Explication détaillée sur la façon de télécharger et d'ouvrir les pièces jointes et les images de pages Web Java

黄舟
黄舟original
2017-06-04 09:26:321780parcourir

L'éditeur suivant vous proposera un article sur les pièces jointes de pages Javaweb, le téléchargement et l'ouverture de images (méthode d'implémentation). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil.

J'ai écrit un lien vers l'image dans javaweb, qui peut être ouverte pour un aperçu et fournit également une fonction de téléchargement.

Ce qui suit est le code d'aperçu, il n'y a rien à dire ; si le href est connecté à un fichier de package compressé qui ne peut pas être ouvert directement, vous pouvez le télécharger directement

<a target="_blank" class="media" href="img/XD201607000023.gif" rel="external nofollow" rel="external nofollow" >预览</a>

La clé est de savoir comment l'afficher sur la page Téléchargez cette image, j'ai donc écrit le jsp suivant en utilisant un flux pour lire le fichier

<a target="_blank" href="downloadFile.jsp?path=img/&pdfName=aa.gif" rel="external nofollow" >下载</a>
<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<%@ page language="java" import="java.io.*;" %>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
  String classPath = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<%  
//得到文件名字和路径  
String filepath = request.getParameter("path");
String filename = request.getParameter("pdfName");

//设置响应头和下载保存的文件名  
response.setContentType("APPLICATION/OCTET-STREAM");  
response.setHeader("Content-Disposition", "attachment;  filename=\""  +  filename  +  "\"");  

//打开指定文件的流信息  
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath+filename);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
  outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
out.clear();
out = pageContext.pushBody();
%> 
</head>
<body>
</body>
</html>
Enfin, j'ai vérifié les informations et je les ai trouvées dans

HTML5 fournit l'attribut de téléchargement Tant que vous écrivez cet attribut, vous pouvez télécharger directement l'image au lieu de l'ouvrir directement ; malheureusement, il ne prend en charge que h5, sinon cela éviterait bien des problèmes

<a target="_blank" download="aa" href="img/XD201607000023.gif" rel="external nofollow" rel="external nofollow" download="aa" >下载</a>
télécharger est le nom du fichier téléchargé.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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