湘阴网站建设,西宁哪家网络公司做网站,wordpress定时发布插件,中铁建设集团招聘700人第一种方法直接在前端使用超链接#xff0c;也就是a标签
浏览器不能识别会直接下载#xff08;像压缩文件不能直接下载#xff09;#xff0c;浏览器能识别#xff0c;想要下载加一个download属性。download可以不写任何信息。
首先在web下建一个文件#xff0c;放需要…第一种方法直接在前端使用超链接也就是a标签
浏览器不能识别会直接下载像压缩文件不能直接下载浏览器能识别想要下载加一个download属性。download可以不写任何信息。
首先在web下建一个文件放需要下载的文件 前端代码 body
a hrefdownload/8SR]W6{XY95QAENBX01XGBD.png图片文件/a
a hrefdownload/111.txt文本文件/a
!--浏览器不能识别的文件--
a hrefdownload/111.zip压缩文件/a
hr
a hrefdownload/8SR]W6{XY95QAENBX01XGBD.png downloadjava.png图片文件/a
a hrefdownload/111.txt download文本文件/a
/body
/html 启动后点击页面中的超链接就可以下载。
第二种方式后台实现下载 1. 需要通过 response.setContentType 方法设置 Content-type 头字段的值 为浏览器无法使用某 种方式或激活某个程序来处理的 MIME 类型例 如 application/octet-stream 或 application/x- msdownload 等。 2. 需要通过 response.setHeader 方法设置 Content-Disposition 头的值 为 attachment;filename 文件名 3. 读取下载文件调用 response.getOutputStream 方法向客户端写入附件内容。 WebServlet(/downloadServlet)
public class DownloadServlet extends HttpServlet {Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(-----文件下载-------);//设置请求的编码格式request.setCharacterEncoding(UTF-8);response.setContentType(text/html;charsetUTF-8);//获取参数得到要下载的文件名前端传来的String fileName request.getParameter(fileName);//参数的非空判断 trim去除字符串的前后空格if(fileName null || .equals(fileName.trim())){response.getWriter().write(请输入要下载的文件名);response.getWriter().close();return;}//得到图片存放的路径String path request.getServletContext().getRealPath(/download/);//通过路径得到file对象File file new File(path fileName);if(file.exists() file.isFile()){//设置响应类型浏览器无法使用某种方式或激活某个程序来处理MIME类型response.setContentType(application/x-msdownload);//设置响应头response.setHeader(Content-Disposition,attachment;filenamefileName);//得到file文件输入流InputStream in new FileInputStream(file);//得到字节输出流ServletOutputStream out response.getOutputStream();//定义byte数组byte[] bytes new byte[1024];//定义长度int len 0;//循环输出while((len in.read(bytes)) ! -1){//输出out.write(bytes,0,len);}//关闭资源out.close();in.close();}else{response.getWriter().write(文件不存在请重试);response.getWriter().close();}}
} ---------------------------------------------------------------- 简化的代码 WebServlet(/downloadServlet02)
public class DownLoadSimple extends HttpServlet {Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 设置请求的编码request.setCharacterEncoding(UTF-8);// 获取文件下载路径String path getServletContext().getRealPath(/);// 获取要下载的文件名String name request.getParameter(fileName);// 通过路径得到file对象File file new File(path name);// 判断file对象是否存在且是否是一个标准文件if (file.exists() file.isFile()) {// 设置响应类型 (浏览器无法使用某种方式或激活某个程序来处理的类型)response.setContentType(application/x-msdownload);// 设置头信息response.setHeader(Content-Disposition, attachment;filename name);// 得到输入流InputStream is new FileInputStream(file);// 得到输出流ServletOutputStream os response.getOutputStream();// 定义byte数组byte[] car new byte[1024];// 定义长度int len 0;// 循环 输出while ((len is.read(car)) ! -1) {os.write(car, 0, len);}// 关闭流 释放资源os.close();is.close();} else {System.out.println(文件不存在下载失败);}}
}