下载一个本地文件出现的小问题

Posted yizhihaha01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下载一个本地文件出现的小问题相关的知识,希望对你有一定的参考价值。

之前做过下载文件的后台方法

/**
     * 下载附件
     */
    public void fjxxDown() throws IOException {
        String fjxxno = getPara("fjxxno");
        Record fjxx = LkglService.service.fjxxDown(fjxxno);
        byte[] fjnr = fjxx.get("fjnr");
        
        new ToolFileConsole().loadFileForByte(getResponse(),        //该类 附在文末尾
                String.valueOf(fjxx.get("fjmc")), "application/x-msdownload", fjnr);
    }

这里附件是从查出数据库的文件。

现在改 需求:需要下载一个本地文件(模仿上文)

后台代码;


private static String DOWNLOADPATH = "/files/aq/hj/jshjmb/jsmb.xlsx";  ()


/**
* 下载附件 */ public void download() throws IOException { String realPath = super.getRealPath(); String downloadPath = realPath + DOWNLOADPATH; File file = new File(downloadPath); System.out.println(file.exists()); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] b = new byte[1024]; //不能直接把这个数组放入最后一个参数,不然文件打不开 int len; while ((len = fis.read(b)) != -1) { bos.write(b, 0, len); } fis.close(); bos.close(); byte[] buffer = bos.toByteArray(); new ToolFileConsole().loadFileForByte(getResponse(), String.valueOf("家属会见信息模板文件.xlsx"), "application/x-msdownload", buffer); //String.valueOf("家属会见信息模板文件.xlsx")似乎没发挥用处
      renderNull(); }

注意:

new ToolFileConsole().loadFileForByte方法最后一个参数是 byte数组

我们采取
 ByteArrayOutputStream bos 读出文件。
然后再 byte[] buffer = bos.toByteArray();  转为byte数组格式。放入最后一个参数位置。


以上是关于下载一个本地文件出现的小问题的主要内容,如果未能解决你的问题,请参考以下文章

根据图片的url地址下载图片到本地保存代码片段

下载文件到本地解压压缩包出现文件损坏,报错问题已解决

在 HTML5 Video 中,如何播放长视频中的小片段?

自己开发的在线视频下载工具,基于Java多线程

根据在 Spinner 中选择的数字,相同的片段应该出现在另一个之下。如何?

无法从本地文件系统下载 xml 文件