精华内容
下载资源
问答
  • java文件下载

    千次阅读 2018-10-26 16:47:07
    Java后台文件下载的方法: public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); //如...

    Java后台文件下载的方法:

     public HttpServletResponse download(String path, HttpServletResponse response) {
            try {
                // path是指欲下载的文件的路径。
                File file = new File(path);
                //如果文件不存在
                if(!file.exists()){
                    request.setAttribute("message", "您要下载的资源已被删除!!");
                    request.setAttribute("flag", "1");
                    return MANAGER_APK_DECOMPILE_UPDATE_URL;
                }
                // 取得文件名。
                String filename = file.getName();
                // 取得文件的后缀名。
                String ext = filename.substring(filename.lastIndexOf(”.”) + 1).toUpperCase();
    
                // 以流的形式下载文件。
                InputStream fis = new BufferedInputStream(new FileInputStream(path));
                byte[] buffer = new byte[fis.available()];
                fis.read(buffer);
                fis.close();
                // 清空response
                response.reset();
                // 设置response的Header
                response.addHeader(”Content-Disposition”, ”attachment;filename=” + new String(filename.getBytes()));
                response.addHeader(”Content-Length”, “” + file.length());
                OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
                response.setContentType(”application/octet-stream”);
                toClient.write(buffer);
                toClient.flush();
                toClient.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            return response;
        }

     

    展开全文
  • java 文件下载

    万次阅读 2016-06-14 16:56:15
    文件下载,无非是通过流读取文件然后写出文件@RequestMapping("/download") @ResponseBody //filename 为上传存的文件名称,例如:201601011111_2345.png public void downloadFile(String filename, ...

    文件下载,无非是通过流读取文件然后写出文件

    @RequestMapping("/download")
    @ResponseBody
    //filename 为上传存的文件名称,例如:201601011111_2345.png
    public  void downloadFile(String filename, HttpServletResponse response,HttpServletRequest request)
                throws IOException {
            String destpath = "";
            destpath = request.getRealPath("/upload/images") + File.separator;
            filepath = destpath + filename;
            File file = new File(filepath);
    
            response.setContentType("multipart/form-data;charset=utf-8");
            //防止乱码
            response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("GBK"), "ISO8859-1"));
            response.setCharacterEncoding("utf-8");
            InputStream fis = new BufferedInputStream(new FileInputStream(file));
            byte[] b = new byte[fis.available()];
            fis.read(b);
            response.getOutputStream().write(b);
            response.getOutputStream().flush();
            response.getOutputStream().close();
            response.flushBuffer();
            fis.close();
        }



    注意:这种方式下载只能通过window.location.href=”download/downloadFile.do”的方式,不能通过ajax来调用



    展开全文
  • Java文件下载,自定义下载名称

    千次阅读 2017-09-08 13:47:01
    Java文件下载,自定义下载名称

    文件下载我们经常会用到,把资源放到服务器然后开启就可以访问资源了。。。就以tomcat服务器为例
    这里写图片描述
    我服务器上有个img文件夹里面有123.jpg的文件,我启动服务器
    这里写图片描述

    可以访问到这个图片 , 但是路径名称和文件名称是固定的 ;但是我们发现有些下载链接下载下来的文件文件名称是变化了 。。。。 还有就是,这个图片我本来是想下载了, 但是浏览器却默认给我展示了 。。。。 这个就尴尬了 。。
    如果自定义文件的名称了 ? 直接上代码。。。

    
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Date;
    import java.util.HashMap;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.log4j.Logger;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import net.sf.json.JSONObject;
    
    @RequestMapping("/test")
    @Controller
    public class TestController {
        private static Logger logger = Logger.getLogger(TestController.class);
    
        @SuppressWarnings({ "unchecked", "rawtypes" })
        @RequestMapping(value = "/download.do")
        public void downloadAction(String fileName,HttpServletRequest request, HttpServletResponse response) throws Exception {
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
            String path = "/Users/apple/Desktop/"+fileName;
            InputStream inputStream = new FileInputStream(path);
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = inputStream.read()) != -1) {
                inputStream.read(buffer, 0, len);
            }
            inputStream.close();
        }
    }
    
    
    http://127.0.0.1:8088/xxddeng/test/download.do?fileName=100.wmv

    这是一个接口 , 接口接收一个参数
    这里写图片描述

    这里写图片描述

    我们可以看到,下载文件就像调用接口一样可以自定义 。。。。
    其实有时候我们还会有一种需求就是有多个文件然后需要压缩下载

        @SuppressWarnings({ "unchecked", "rawtypes" })
        @RequestMapping(value = "/download2.do")
        public void download2Action(HttpServletRequest request, HttpServletResponse response) throws Exception {
            String downloadName = "压缩包.zip";
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment;filename=" + downloadName);
            String path1 = "/Users/apple/Desktop/100.wmv";
            String path2 = "/Users/apple/Desktop/101.wmv";
            String path3 = "/Users/apple/Desktop/102.wmv";
            File files[] = new File[] { new File(path1), new File(path2), new File(path3) };
    
            File zipFile = new File("/Users/apple/Desktop/压缩包.zip");
            ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); // 声明压缩流对象
            for (File file : files) {
                InputStream input = new FileInputStream(file); // 定义文件的输入流
                zipOut.putNextEntry(new ZipEntry(file.getName())); // 设置ZipEntry对象
                zipOut.setComment("hebiao.online"); // 设置注释
                int temp = 0;
                while ((temp = input.read()) != -1) { // 读取内容
                    zipOut.write(temp); // 压缩输出
                }
                input.close(); // 关闭输入流
            }
            zipOut.close(); // 关闭输出流
    
        }
    
    展开全文
  • vue+java 文件下载

    千次阅读 2019-03-13 14:34:35
    vue+Java 文件下载 背景 算是第一次,前后端自己琢磨文件下载了。直接上代码吧。 前端代码 <template> <div> &lt...

    vue+Java 文件下载

    背景

    算是第一次,前后端自己琢磨文件下载了。直接上代码吧。
    

    前端代码

    <template>
      <div>
        <!-- 列表 -->
        <el-row>
          <el-table :data="docs" ref="docs" style="width: 100%" stripe @sort-change="sort" v-loading="loading">
            <el-table-column prop="docFileName" :label="$t('gts.doc.fileName')" sortable align="center" min-width="10%"></el-table-column>
            <el-table-column prop="id" align="center" min-width="20%">
              <template slot-scope="scope">
                <a @click="download(scope.$index, scope.row)">
                  <i class="fas fa-download" style="color:#409EFF"></i>
                </a>
              </template>
            </el-table-column>
          </el-table>
          <div class="pagination">
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handlePageChange"
              :current-page="page"
              :page-size="limit"
              :total="total"
              :page-sizes="[10, 20, 50, 100]"
              layout="total, sizes, prev, pager, next, jumper"
              :background="true"
            ></el-pagination>
          </div>
        </el-row>
      </div>
    </template>
    
    <script>
    import { list } from "@/api/gts/document";
    import { selectDict } from "@/api/common";
    import { cst } from "@/utils/constants";
    
    export default {
      name: "GtsDocument",
      data() {
        return {
          limitNum: 1,
          fileList: [],
          docs: [],
          loading: false,
          page: 1,
          limit: 10,
          total: 0,
        };
      },
      created: function() {
        this.search();
      },
      methods: {
        search() {
          list(this.page, this.limit, this.$route.query.gtsId).then(v => {
            if ("ok" == v.data.msg) {
              this.docs = v.data.rows;
              this.total = v.data.total;
            }
          });
        },
        // 下载事件
        download(index, row) {
          var path = row.docPath + row.docFileName;
          // path例如:D:\home\upload\da975319173641669a6fca212ffd272e\夕阳.jpg
          window.open("http://localhost:8080/api/documents/download?path=" + encodeURI(path));
        },
        sort() {},
        handlePageChange(i) {
          this.page = i;
          this.search();
        },
        handleSizeChange(i) {
          this.limit = i;
          this.search();
        },
      }
    };
    </script>
    
    
    
    
    

    后台controller

        /**
         * <p>Description: 下载</p>
         *
         * @param path     路径
         * @param response
         */
        @GetMapping("/api/documents/download")
        public void download(String path, HttpServletResponse response) {
            try {
                // path: 欲下载的文件的路径
                File file = new File(path);
                // 获取文件名 - 设置字符集            String downloadFileName = new String(file.getName().getBytes(StandardCharsets.UTF_8), "iso-8859-1");
                // 以流的形式下载文件
                InputStream fis;
                fis = new BufferedInputStream(new FileInputStream(path));
                byte[] buffer = new byte[fis.available()];
                fis.read(buffer);
                fis.close();
                // 清空response
                response.reset();
                // 设置response的Header
                response.addHeader("Content-Disposition", "attachment;filename=" + downloadFileName);
                response.addHeader("Content-Length", "" + file.length());
                OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
                response.setContentType("application/octet-stream");
                toClient.write(buffer);
                toClient.flush();
                toClient.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    

    页面效果

    在这里插入图片描述

    展开全文
  • 程序员在做web等项目的时候,往往都需要添加文件上传、下载、删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计的时候就会事半功倍...
  • java文件下载之 videoVIP

    千次阅读 2021-02-01 10:20:52
    1、迪迪 - video ...提取码:1234 ...文件上传下载处理,请忽略 try{ if (null != IMG && !IMG.isEmpty()) { String ffile = DateUtil.getDays(), fileName = "",IMG_URL=""; Stri...
  • JAVA文件下载时乱码有两种情况: 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 response.setContentType("multipart/form-data"); String ...
  • java文件下载文件名乱码

    千次阅读 2017-08-04 16:21:06
    关于中文文件下载的问题,网上的咨询和答疑已经很多,我原来处理下载的代码如下: java代码response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"))...
  • 今天遇到一个Excel导出报 java.io.IOException: Connection reset by peer 这个问题。 首先是因为把代码部署到了测试服务器,然后测试导出Excel就出现了异常。 但是之前本地测试都没毛病,为何一到线上就出问题了呢...
  • java 文件下载后打开时提示文件损坏

    万次阅读 2019-03-06 19:02:24
    以下的经测试都是正确的。 出现损坏的原因: ... 并不是每次都能读到1024个字节,所有用readTmp作为每次读取数据的长度...本地文件下载: public static void downloadLocal(HttpServletResponse response,String p...
  • 文件下载不能异步请求,因为我需要url后面动态拼接参数,所以这里用了button,具体前台代码如下可以实现下载(看压缩文件下载就可以了): &lt;body&gt; &lt;input type="button" name="...
  • Java文件下载功能实现

    千次阅读 2016-06-14 00:41:18
    在做web开发的时候,常常会有这样的功能,比如说导出成excel、pdf、txt等,将读取要导出的数据,然后生成临时文件,然后调用一个下载的子程序。现在我们来说说这个下载子程序怎么写吧。 首先生成的临时文件肯定是有...
  • Java文件下载之解决中文乱码

    千次阅读 2017-07-25 21:32:15
    文件上传和下载是web开发中常遇到的问题,而如果下载文件带有中文时一般都会出现乱码现象,但是对这个问题,不同的浏浏览器所能识别的编码也不一样。所以应该采用一种通用的解决方案,不多说了贴上代码。 import ...
  • 将从数据库查出的数据以生成csv文件的方式下载下来(导出)。 实现方案 最开始的方法是: 将从数据库中查出的数据拼成符合csv文件格式的字符串,然后将字符串转为输入流,最后返回InputStreamResource,达到...
  • java 文件下载 文件名称中文不显示

    千次阅读 2017-02-08 13:06:06
    String fileName = “文件名称.doc” try { String fileName = new String(downFileName.getBytes(), “ISO-8859-1”); response.setHeader(“Content-Disposition”, “attachment;fileName=”+ fileName);
  • 1、我们发送请求到服务器端通过response输出流将文件进行读取存储到客户端 一般情况下我们是弹出...2.2、将response输出流包装到制定了文件下载路径的OutPut流中写到本地的设置路径下outputUrl rpcServerUrl是服...
  • Java 文件下载出现中文乱码

    千次阅读 2018-08-16 10:17:44
     formFileName = java.net.URLEncoder.encode(formFileName, "UTF-8");  } else {  // 非IE浏览器的处理:  formFileName = new String(formFileName.getBytes("UTF-8"), "ISO-8859-1");  }  ...
  • java 文件下载浏览器没有弹出下载框

    千次阅读 2019-02-23 16:39:23
    原因是我在前端用了ajax请求,后端用了二进制流来实现,而ajax不支持流形式,改成了表单提交解决。
  • 项目中用到了csv文件的导出(下载),要求是不在服务器上生成文件直接保存到客户端,客户端弹出选择文件保存的位置等等! 希望知道或者有好的资料可以参考的大神帮帮忙
  • 百分比进度= 每次读写的长度 *100/需要复制文件总...下载文件计算百分比进度同理 public void copyFile(String oldPath, String newPath, FileProgress fileProgress) { try { int bytesum = 0; int byte...
  • java文件下载不显示中文文件名

    千次阅读 2017-12-08 16:59:52
    https://zhidao.baidu.com/question/1111932467425249099.html我正在做一个javaWeb程序,涉及到文件下载,文件名是中文的,下载的时候不像是中文文件名,通过转码String name = new String(fileName1.getBytes(“UTF...
  • Java文件下载选择路径注意事项

    千次阅读 2017-11-22 10:33:52
    最近在项目里有个下载文件的需求,后台代码写好后,debug时没有出现任何错误信息,但页面就是没有弹出路径供下载选择。然后一直以为是后台代码的问题,结果无意间搜索发现如果想要可以选择下载路径的话,前端需要用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,749
精华内容 26,299
关键字:

java文件下载

java 订阅