文件上传Content-disposition中Attachment和inline的区别
2017-08-26 22:16
513 查看
在日常开发中文件上传需要设置content-disposition类型,是下载还是内嵌显示。如我用阿里云或者京东云上传图片,我需要打开连接是直接显示图片,而导出excel文件我希望直接下载文件那么content-disposition设置就不一样。
java web中下载文件时,我们一般设置Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.
Content-disposition: inline; filename=1502849449726.jpg表示浏览器内嵌显示一个文件
Content-disposition: attachment; filename=1502849449726.xlsx表示会下载文件,如火狐浏览器中
案例:图片上传设置content-dispition
这样在浏览器访问上传图片地址就是直接打开图片而不是下载图片。默认头文件类型为application/octet-stream,故必须针对可内嵌显示的类型,如上诉代码中列表出的那么多类型。
java web中下载文件时,我们一般设置Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.
Content-disposition: inline; filename=1502849449726.jpg表示浏览器内嵌显示一个文件
Content-disposition: attachment; filename=1502849449726.xlsx表示会下载文件,如火狐浏览器中
案例:图片上传设置content-dispition
//指定该Object文件类型,默认值application/octet-stream objectMetadata.setContentType(getContentType(fileName)); /** * 通过文件名判断并获取OSS服务文件上传时文件的contentType * @param fileName 文件名 * @return 文件的contentType */ public static String getContentType(String fileName){ //文件名后缀 String fileExtension = fileName.substring(fileName.lastIndexOf(".")); if(".bmp".equalsIgnoreCase(fileExtension)) { return "image/bmp"; } if(".gif".equalsIgnoreCase(fileExtension)) { return "image/gif"; } if(".jpeg".equalsIgnoreCase(fileExtension) || ".jpg".equalsIgnoreCase(fileExtension) || ".png".equalsIgnoreCase(fileExtension) ){ return "image/jpeg"; } if(".html".equalsIgnoreCase(fileExtension)){ return "text/html"; } if(".txt".equalsIgnoreCase(fileExtension)){ return "text/plain"; } if(".vsd".equalsIgnoreCase(fileExtension)){ return "application/vnd.visio"; } if(".ppt".equalsIgnoreCase(fileExtension) || "pptx".equalsIgnoreCase(fileExtension)) { return "application/vnd.ms-powerpoint"; } if(".doc".equalsIgnoreCase(fileExtension) || "docx".equalsIgnoreCase(fileExtension)) { return "application/msword"; } if(".xml".equalsIgnoreCase(fileExtension)) { return "text/xml"; } return "image/jpeg"; }备注:
这样在浏览器访问上传图片地址就是直接打开图片而不是下载图片。默认头文件类型为application/octet-stream,故必须针对可内嵌显示的类型,如上诉代码中列表出的那么多类型。
相关文章推荐
- Content-Disposition 指定该被下载时的名称:attachment和inline的区别,使用a标签下载时,文件的ContentDisposition属性设置
- Java在上传或下载时header中Content-Disposition的作用以及Content-disposition中Attachment和inline的区别
- 使用RadUpload控件上传大文件时出现如下bug,请大虾帮忙解决下RadUpload Ajax callback error.Source url returned invalid content
- Content-Disposition 文件上传、下载 中文乱码 HTTP头 解决办法 Java Jersey
- 设置IIS7文件上传的最大大小 maxAllowedContentLength,maxRequestLength
- 通过formFile实现上传文件,图片,或者其他,struts中继承action和dispatchAction的区别和用法
- LIBCURL上传文件失败的原因可能是设置了headers中的Content-type导致的
- struts上传文件失败 Content-Type not allowed错误解决方法【转】
- 关于ftp中文本模式和二进制模式上传文件的区别
- android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)
- angularjs+文件上传 http头content-type字段变化
- 由response.setContentType()方法 + JSP/Servelt上传下载文件
- post 提交 和 get 提交的区别 文件上传
- 文件上传 content-type:application/json System.Web.HttpContext.Current.Request.InputStream 读取不到数据
- android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)
- setContentView()如何区别加载layout文件
- AFN上传图片文件 遇到 NSURL中fileURLWithPath和URLWithString 的区别的问题
- SpringBoot上传文件跟传统的SpringMVC的区别
- Content-disposition中Attachment和inline的区别
- 在wp7中读取XML的配置文件,Content与Resource的区别