02 流的方式预览文件

Posted meitanzai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02 流的方式预览文件相关的知识,希望对你有一定的参考价值。

  页面预览文件的时候,避免暴露服务器目标文件的所在地址,而是通过一个请求,把文件流直接输出展示。

    /**
     * 读取文件
     * 
     * @param request
     * @param response
     * @param path
     */
    @RequestMapping(value = "/readFile", method = {RequestMethod.POST,RequestMethod.GET})
    public void readFile(HttpServletRequest request, HttpServletResponse response, Long id) {

        response.reset();

        InputStream in = null;
        OutputStream output = null;
     try {

            //调用ServletOutputStream或者Writer之前有效。
            //当使用的缓存已满时,容器必须立刻刷新把缓存的内容发送到客户端,如果这是第一个被发送到客户端的数据,那么response也会被认为是已提交
            File file = new File(ctxPath + File.separator + fileName);
            
            //输出文件流
            if (file.exists()) {
                output = response.getOutputStream();
                in = new FileInputStream(file);
                byte tmp[] = new byte[256];
                int i = 0;
                while ((i = in.read(tmp)) != -1) {
                    output.write(tmp, 0, i);
                }
                output.flush();
            }
        
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != in) {
                    in.close();
                }
                if (null != output) {
                    output.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

 

以上是关于02 流的方式预览文件的主要内容,如果未能解决你的问题,请参考以下文章

片段中的 Android 相机预览

Android:通过片段进行相机预览。从活动中确定

关于对H264码流的PS的封装的相关代码实现

有没有办法在不关闭底层流的情况下关闭 Writer?

springboot文件上传 流的方式 后台计算上传进度

springboot文件上传 流的方式 后台计算上传进度