html下载预览本地磁盘文件程序

xiaoxiao2021-02-28  16

最近项目用到html页面下载预览本地磁盘的需求,网上搜集了好多,没有具体并且能跑通的程序,这里贴出来跟大家分享

js

1.动态更改href 请求  实现更改文件名称

  var url="file/download?filePath="+entName+".pdf";     url=encodeURI(url);     url=encodeURI(url);      $("#xiazaipdfbtn").attr('href',url); 

      2.html

<a href="file/download?filePath=dinfo-boc.pdf" class="topalabe"  target="_blank"  id="xiazaipdfbtn">下载</a>

     3.java

package com.ultrapower.zq.iscloud.web.boc.controller.admin; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.context.ServletContextAware; import com.ultrapower.zq.iscloud.web.boc.api.utils.ReadPropertity; import javax.servlet.ServletContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; @Controller public class FileController implements ServletContextAware{     //Spring这里是通过实现ServletContextAware接口来注入ServletContext对象     private ServletContext servletContext;     @RequestMapping(value = "/views/admin/file/download", method = RequestMethod.GET)     public void fileDownload(HttpServletRequest request, HttpServletResponse response){         //获取网站部署路径(通过ServletContext对象),用于确定下载文件位置,从而实现下载         String filePath = request.getParameter("filePath"); //        filePath = java.net.URLDecoder.decode(filePath,"UTF-8");         //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型         response.setContentType("multipart/form-data");         //2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)         response.setHeader("Content-Disposition", "attachment;fileName="+filePath);         ServletOutputStream out;         //通过文件路径获得File对象(假如此路径中有一个download.pdf文件)         File file = new File(ReadPropertity.getProperty("python.path")+"\\DINFO-BOC.pdf");         try {             FileInputStream inputStream = new FileInputStream(file);             //3.通过response获取ServletOutputStream对象(out)             out = response.getOutputStream();             int b = 0;             byte[] buffer = new byte[1024];             while ((b=inputStream.read(buffer))!=-1){                 //4.写到输出流(out)中                 out.write(buffer,0,b);             }             inputStream.close();             out.close();             out.flush();         } catch (IOException e) {             e.printStackTrace();         }     }     public void setServletContext(ServletContext servletContext) {         this.servletContext = servletContext;     } }

转载请注明原文地址: https://www.6miu.com/read-800182.html

最新回复(0)