在http中能下载,但是启用https协议后下载报错问题结果,在谷歌,火狐浏览器正常
具体操作如下:
// 获取下载文件 //userRegisterInfoPath 下载路径 File downloadFile = new File(userRegisterInfoPath); FileInputStream fos = new FileInputStream(downloadFile); byte[] bytes = new byte[4096]; int read = 0; response.reset(); response.setContentType("application/octet-stream;charset=UTF-8"); //filename 是带扩展名 response.setHeader("Content-Disposition","attachment; filename="+ URLEncoder.encode("申请表.pdf", "utf-8")); response.setHeader("Pragma", "public"); //下载设置的关键项 response.setHeader("Cache-Control","public"); ServletOutputStream sos = response.getOutputStream(); while((read=fos.read(bytes))!=-1){ sos.write(bytes, 0, read); } sos.flush(); sos.close();
文件上传转载的一片好文:
作者:http://www.blogjava.net/leekiang/archive/2007/08/27/139844.html
片段代码
<form action="" method="post" enctype="multipart/form-data">
最大上传2G.
通过 http 协议上传文件(rfc1867协议概述,jsp 应用举例,客户端发送内容构造)
服务器接收到上传的流,自己其实是不作任何处理的,那个request还是原装的,谁来处理这个request呢,一般采用第三方的工具,这里以commons fileupload为例.
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);// 设置缓冲,这个值决定了是fileinputstream还是bytearrayinputstream
factory.setRepository(new File("d:\\temp"));//设置临时存放目录,默认是new File(System.getProperty("java.io.tmpdir"))
ServletFileUpload sfu = new ServletFileUpload(factory);
sfu.setSizeMax(100*1024*1024);//100M
List items = sfu.parseRequest(request);//传入的这个request还是原装的
factory.setSizeThreshold(4096);// 设置缓冲,这个值决定了是fileinputstream还是bytearrayinputstream
factory.setRepository(new File("d:\\temp"));//设置临时存放目录,默认是new File(System.getProperty("java.io.tmpdir"))
ServletFileUpload sfu = new ServletFileUpload(factory);
sfu.setSizeMax(100*1024*1024);//100M
List items = sfu.parseRequest(request);//传入的这个request还是原装的
见上面的代码,commons fielupload通过ServletFileUpload类的parseRequest(request)方法处理这个原始流。而ServletFileUpload又会调用其爷爷类FileUploadBase的parseRequest(request)方法,然后又会调return parseRequest(new ServletRequestContext(request)),代码如下
上传代码springboot
@PostMapping(value="/szjrb/upLoadReportXmlFile") public RestModel upLoadReportXmlFile(MultipartHttpServletRequest multiReq,String xmlFilePath) throws IOException{ FileOutputStream fos = null; FileInputStream fis = null; try{ if(StringUtils.isBlank(xmlFilePath)){ return new RestModel("10006","xmlFilePath参数不能为空"); } File file = new File(xmlFilePath); if(!file.isFile()){ return new RestModel("10007","xmlFilePath不是文件路径"); } //上传 fos=new FileOutputStream(new File(xmlFilePath)); fis=(FileInputStream) multiReq.getFile("file").getInputStream(); byte[] buffer=new byte[1024]; int len=0; while((len=fis.read(buffer))!=-1){ fos.write(buffer, 0, len); } }catch (Exception e){ logger.error(e.getMessage(),e); return new RestModel("0","上传失败",xmlFilePath); }finally { fos.close(); fis.close(); } return new RestModel(RestModel.CODE_SUCCESS,RestModel.MESSAGE_SUCCESS,xmlFilePath); }
相关推荐
在IE浏览器中输入: http://localhost:8080/struts2-mailreader-2.0.9.war<br><br> 恭喜,运行成功! <br> ------------------------------------------------ 除了Tomcat外,当然使用其他的服务器也...
在IE浏览器中输入: http://localhost:8080/struts2-mailreader-2.0.9.war<br><br> 恭喜,运行成功! <br> ------------------------------------------------ 除了Tomcat外,当然使用其他的服务器也...
在IE浏览器中输入: http://localhost:8080/struts2-mailreader-2.0.9.war<br><br> 恭喜,运行成功! <br> ------------------------------------------------ 除了Tomcat外,当然使用其他的服务器也...
已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个自定义类型转换器,并基于应用程序进行全局配置,实现字符串参数与颜色值之间的转换,并将颜色值应用于视图...
struts最新版帮助文档。使用IE浏览器打开index
采用了FCKeditor在线文本编辑器,用FCKeditor上传文件时还存在有问题,不知道是不是配置存在问题,但是图片文件利用Struts2的action上传到服务器,因为有其他附件文件要上传,并且要保存文件信息,在删除文章时要把...
由于对页面样式了解不多,所以写出来的样式目前只在IE上运行良好,在火狐上效果不佳,并且在火狐上提示复习这一块一直出不来,目前也在研究CSS,希望能写出适合大多数浏览器的样式。 用户可建立自己的知识分类,...
采用了FCKeditor在线文本编辑器,用FCKeditor上传文件时还存在有问题,不知道是不是配置存在问题,但是图片文件利用Struts2的action上传到服务器,因为有其他附件文件要上传,并且要保存文件信息,在删除文章时要把...
在IE浏览器可以正常运行,点击开始上传下面的白色区域,进行上传
在windows系统中,使用struts2的file属性不支持选择文件夹,只能选择到具体文件,通过js及ie浏览器配置则可实现选择到文件夹操作
24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现文字重叠的现象。 26、修改了:使用 Archiver 功能浏览没有阅读...
24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现文字重叠的现象。 26、修改了:使用 Archiver 功能浏览没有阅读...
(3)打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。 注意:8080为安装Tomcat时设置的端口号。 (4)单击Tomcat Manager超链接,弹出“连接到 localhost”对话框。 (5)在...
(4)打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。 注意:8080为安装Tomcat时设置的端口号 。 (5)单击Tomcat Manager超链接,弹出“连接到 localhost”对话框。 (6)在...
如果你用ie浏览会导致,页面的图片和css无法正常显示。 所以建议要看此文档。安装火狐浏览器可以正常浏览。还有google新出的浏览器页可以(google新出的浏览器速度很快哦) 好了 快去看看吧。里边的 max on java 随便...
24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现文字重叠的现象。 26、修改了:使用 Archiver 功能浏览没有阅读...
24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现文字重叠的现象。 26、修改了:使用 Archiver 功能浏览没有阅读...
并自动运行IE浏览器,并自动打开http://localhost:8080/test1 网页. 你还将学会直接用javac命令来编译代码,java运行代码方法,ANT方式编译和运行代码, 创建自己的更高效的Build.xml文件,实现DIY自已的工程, Eclipse...
(3) 打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。 注意:8080为安装Tomcat时设置的端口号。 (4) 单击Tomcat Manager超链接,弹出“连接到localhost”对话框。 (5) 在用户名及...
并自动运行IE浏览器,并自动打开http://localhost:8080/test1 网页. 你还将学会直接用javac命令来编译代码,java运行代码方法,ANT方式编译和运行代码, 创建自己的更高效的Build.xml文件,实现DIY自已的工程, Eclipse...