`
y806839048
  • 浏览: 1121530 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

(文件下载,预览)inputstream和outputstream的区别

阅读更多

 

inputstream--》输入,用于将数据变成流在管道传输

outputstream--》输出,用于承接管道中的数据,并输出到相应地点

outputstream是由路径生成的就写到这个路径,是由response生成的就写在写在页面上,即下载或预览

设置了header就是下载,没设置只要浏览器能解析的就会预览(不指明后缀名会这样,但是对word,exlcel无效),更好的方法就是五无论下载还是预览都设置头,浏览器会自动然你选择浏览还是下载

 

/**

* 文件下载

* 此方法用于下载(资讯信息-点钢周报)

* 在shiro中配置此路径过滤验证 

* @param request

* @param response

* @param path

* @param fileName

* @return String

*/

@RequestMapping(value = "/downloadInvoiceFile")

public String downloadInvoiceFile(HttpServletRequest request, HttpServletResponse response, String path, String fileName) {

 

if (StringUtils.isNull(path)) {

return null;

}

if (StringUtils.isNull(fileName)) {

fileName = "附件";

}

try {

response.reset();

response.setContentType("MIME");/////

//response.setContentType("MIME");//自动识别后缀名,但是对于word,excel不准

response.setHeader("Content-Disposition", "attachment;filename=\"" + new String(fileName.getBytes("GB2312"), "ISO_8859_1")+path.substring(18) + "\"");

//这里设置的名字就是附件的名字及后缀名(任何文件的后缀名准确设置),注意中文要转码,否则会出现乱码或设置无效

tfsManager.fetchFile(path, "", response.getOutputStream());

response.flushBuffer();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

 

 

========================预览

(对于浏览器下载预览可供你选择(除了zip等浏览器知道预览不了的))======================

  /*

  * 放货单显示

  */

   @RequestMapping(value = "/showPic")

public void showPic(HttpServletRequest request, HttpServletResponse response) throws Exception, IOException {

String path = request.getParameter("path");

response.setHeader("Content-Disposition", "attachment;filename=\"" + new String(fileName.getBytes("GB2312"), "ISO_8859_1")+path.substring(18) + "\"");

       tfsManager.fetchFile(path, "", response.getOutputStream());

}

   

 

分享到:
评论

相关推荐

    基于Java实现wps在线编辑、在线预览后台服务.zip

    2. **文件处理与IO流**:在线预览和编辑文档涉及到文件上传、下载和转换,因此必须熟悉Java的File类和IO流操作,如InputStream和OutputStream,用于读写文件内容。 3. **WPS API集成**:为了实现WPS文档的在线编辑...

    Java 文件预览

    考虑到安全性和性能,文件预览通常不会直接发送整个文件,而是发送文件的一部分或者文件的元数据。例如,对于大文件,可以先发送文件大小,然后分块传输;对于图片,可能仅发送缩略图。 最后,标签“Java 文件预览...

    zyUpload实现图片预览上传

    Java的IO流技术用于读取和写入文件,例如`InputStream`和`OutputStream`。此外,为了安全和性能考虑,Java后端还需要处理文件名的重命名和防止重复上传。 PHP作为另一种后端语言,zyUpload_php可能包含了一个处理...

    上传和下载并通过流把文件进行输出

    综上所述,文件的上传、下载和通过流进行输出涉及了前端交互、HTTP协议、服务器处理和流技术等多个方面。正确实施这些功能,不仅能提高用户满意度,还能有效地管理服务器资源,保证系统的稳定运行。

    【JavaScript源代码】Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法.docx

    在本文档中,我们探讨了如何在Vue.js应用中通过阿里云OSS(Object Storage Service)的URL直接下载文件,并在下载过程中修改文件名。在尝试通过HTML的`<a>`标签直接设置`download`属性来实现重命名失败后,作者选择...

    Flex4.6+java+servlet上传图片例子+图片上传预览

    文件存储通常涉及到文件流操作,例如使用InputStream和OutputStream。完成文件保存后,Servlet可以通过HttpServletResponse向Flex客户端返回一个响应,比如返回文件的URL,这样前端就可以根据URL显示已上传的图片。 ...

    文件的上传和下载

    在IT行业中,文件的上传和下载是Web应用中不可或缺的一部分,尤其在Java开发中,这一功能的实现至关重要。本文将详细讲解如何使用Java来实现文件的上传和下载操作。 首先,我们来了解一下文件上传的基本流程。文件...

    java实现在线预览,仿百度文库

    5. **文件流处理**:Java中的InputStream和OutputStream接口是处理文件流的关键,它们用于读取和写入文件。在预览过程中,文件不会被完全加载到内存,而是通过流式传输,这样可以节省资源。 6. **浏览器兼容性**:...

    fileManager 文件管理源码

    文件预览功能可能利用了第三方库,如Apache POI处理Office文档,或者使用ImageIO处理图片。这些库能够解析不同格式的文件,并生成预览内容。 安全性方面,`RichfileManager` 可能实现了权限控制,确保只有授权的...

    Java Servlet实现在浏览器中打开pdf文件

    总的来说,通过Java Servlet,我们可以方便地处理文件下载和在线预览的需求,无论是PDF还是其他类型的文件。在实际应用中,还需要考虑文件安全、权限控制、错误处理等复杂情况,确保服务的稳定性和安全性。

    android文件管理器

    1. **文件I/O操作**:使用Java的File类和InputStream/OutputStream流进行文件的读写和移动。 2. **ContentProvider**:Android系统中的数据共享机制,允许文件管理器访问其他应用的私有文件。 3. **Intent**:用于...

    Springboot通过MinIO进行文件操作代码

    在Spring Boot应用中,MinIO是一个非常流行的对象存储服务,它可以用来进行文件的上传、下载、删除等...结合提供的压缩包文件,你将能够构建一个完整的文件管理系统,支持文件的上传、下载、删除以及图片和视频的预览。

    android文件管理源码

    主要涉及`java.io`和`java.nio`这两个包中的类,如File、InputStream、OutputStream、BufferedReader和BufferedWriter等。在源码中,开发者可能会使用`Context.openFileInput()`和`Context.openFileOutput()`方法来...

    文件上传与下载源码 含数据库

    - **流处理**:Java的`InputStream`和`OutputStream`用于读取服务器端的文件并将其写入客户端的响应流。 - **断点续传**:高级功能可能包括支持断点续传,允许用户在中断后继续下载。 - **权限控制**:文件下载...

    Web文件管理(J2EE)

    3. **文件操作API**:Java标准库提供了`java.io`和`java.nio`包,它们包含了一系列用于读写文件的类和接口,如`File`、`InputStream`、`OutputStream`、`Files`类等。在J2EE环境中,这些API通常结合Servlet来处理...

    文件管理器

    在实际开发中,为了提升用户体验,文件管理器通常会包含一些额外特性,如文件预览、文件分类、文件排序和过滤等。这些功能的实现依赖于各种第三方库,例如 Glide 或 Picasso 处理图片预览,DocumentFile 支持Android...

    Java实现的FTP连接与数据浏览程序

    然后,通过输入/输出流(InputStream和OutputStream)进行数据交换。FTP有两种工作模式:主动模式和被动模式。在主动模式下,服务器会打开一个数据连接到客户端,而在被动模式下,客户端需要建立这个连接。Java中的...

    应用源码之安卓图片上传和文件上传带jsp服务端源码.zip

    4. 文件IO操作:在读取和写入图片到本地文件系统时,会用到Android的File类以及InputStream和OutputStream。 5. 网络请求:图片上传需要HTTP或HTTPS请求,通常采用Retrofit、OkHttp等网络库进行API接口调用,将图片...

    Android小米文件管理器源码.zip

    在Android中,文件操作通常通过java.io和java.nio包中的类来完成,例如File、InputStream、OutputStream等。小米文件管理器源码会包含如何创建、读取、写入、删除、重命名文件和目录的相关代码,这些操作需要考虑到...

    安卓文件管理器

    【安卓文件管理器】 在Android操作系统中,文件...随着技能的提升,可以考虑增加更多功能,如搜索、文件预览、压缩/解压等。同时,不要忘记遵循良好的编程实践,比如错误处理和资源管理,确保应用的稳定性和用户体验。

Global site tag (gtag.js) - Google Analytics