课程/Java/后端开发
Java中的文件上传下载
-
-
指尖农民
2019-10-15
structs2的帮助文档
-
截图
0赞 · 0采集
-
-
PGcheng
2017-07-19
- struts2实现下载,contentType要设置为application/octet-stream或application/x-msdownload
-
0赞 · 0采集
-
-
慕用墨浅
2017-07-07
- 文件删除咋整?servlet是否已经包装好inputstream和outputstream?
-
0赞 · 0采集
-
-
DR枫林残忆
2017-06-02
- 下载的 contentType: application/octet-stream; application/x-msdownload
-
0赞 · 0采集
-
-
DR枫林残忆
2017-06-02
- Struts2实现文件下载
-
截图
0赞 · 1采集
-
-
DR枫林残忆
2017-06-02
- 附件下载 contentType设置为application/octet-stream或application/x-msdownload<br>
1)配置流信息<br>
public InputStream getInputStream(){<br>
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);<br>
}<br>
<br>
配置信息<br>
<action name="download" class="com.imooc.action.FileDownloadAction"><br>
<!--通过配置get,set方法能够在Action中获得配置的该参数--><br>
<param name="inputPath">/images/img-lg.jpg</param><br>
<result name="success" type="stream"><br>
<param name="contentType">application/octet-stream</param><br>
<!--需要在对应Action中配置,见1)--><br>
<param name="inputName">inputStream</param><br>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param><br>
<param name="bufferSize">8192</param><br>
</result><br>
</action>
Struts2 OGNL动态设置文件参数
public String getDownloadFileName(){
return "abc.jpg";
}
可在配置文件中,通过${downloadFileName}获取参数
-
0赞 · 1采集
-
-
DR枫林残忆
2017-06-02
- 1、要获取前端页面传输过来的参数(不管是控件的、还是URL传参),需要在action类中定义名称和控件name属性值或者URL参数名相同的成员变量,并setter方法;
2、要获取struts.xml中配置的${xxx},需要在action类中设置getter方法才能传值过来;
3、中文文件名称编码转化使用URLEncoder.encode("中文","UTF-8");
struts.xml中的result节点配置注意:
1、result的类型,以前我们定义一个action,result那里我们基本上都不写type属性,因为其默认是请求转发(dispatcher)的方式,除了这个属性一般还有redirect(重定向)等这些值,在这里因为我们用的是文件下载,所以type一定要定义成stream类型,告诉action这是文件下载的result;
2、result元素里面一般还有param子元素,这个是用来设定文件下载时的参数,inputName这个属性就是得到action中的文件输入流,名字一定要和action中的输入流属性名字相同;
3、contentDisposition属性,这个属性一般用来指定我们希望通过怎么样的方式来处理下载的文件,如果值是attachment,则会弹出一个下载框,让用户选择是否下载,如果不设定这个值,那么浏览器会首先查看自己能否打开下载的文件,如果能,就会直接打开所下载的文件(这当然不是我们所需要的);
4、另外一个值就是filename这个就是文件在下载时所提示的文件下载名字,如果是中文则需要URLEncoder.encode("中文文件名","UTF-8")处理。
PS:struts.xml的action节点下配置的<param>,如下面的inputPath,在action类中通过getInputPath()方法可以获取<param>配置的值
-
0赞 · 2采集
-
-
Adam_Ming
2017-02-05
- 下载的 contentType: application/octet-stream; application/x-msdownload
-
0赞 · 0采集
-
-
wu_xiansen
2016-11-08
- contentType:application/octet-stream,application/x-msdownload
-
0赞 · 0采集
-
-
BeingTowards
2016-09-17
- 1、要获取前端页面传输过来的参数(不管是控件的、还是URL传参),需要在action类中定义名称和控件name属性值或者URL参数名相同的成员变量,并setter方法;
2、要获取struts.xml中配置的${xxx},需要在action类中设置getter方法才能传值过来;
3、中文文件名称编码转化使用URLEncoder.encode("中文","UTF-8");
struts.xml中的result节点配置注意:
1、result的类型,以前我们定义一个action,result那里我们基本上都不写type属性,因为其默认是请求转发(dispatcher)的方式,除了这个属性一般还有redirect(重定向)等这些值,在这里因为我们用的是文件下载,所以type一定要定义成stream类型,告诉action这是文件下载的result;
2、result元素里面一般还有param子元素,这个是用来设定文件下载时的参数,inputName这个属性就是得到action中的文件输入流,名字一定要和action中的输入流属性名字相同;
3、contentDisposition属性,这个属性一般用来指定我们希望通过怎么样的方式来处理下载的文件,如果值是attachment,则会弹出一个下载框,让用户选择是否下载,如果不设定这个值,那么浏览器会首先查看自己能否打开下载的文件,如果能,就会直接打开所下载的文件(这当然不是我们所需要的);
4、另外一个值就是filename这个就是文件在下载时所提示的文件下载名字,如果是中文则需要URLEncoder.encode("中文文件名","UTF-8")处理。
PS:struts.xml的action节点下配置的<param>,如下面的inputPath,在action类中通过getInputPath()方法可以获取<param>配置的值
-
截图
0赞 · 1采集
-
-
sntatas
2016-08-24
- 附件下载 contentType设置为application/octet-stream或application/x-msdownload<br>
1)配置流信息<br>
public InputStream getInputStream(){<br>
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);<br>
}<br>
<br>
配置信息<br>
<action name="download" class="com.imooc.action.FileDownloadAction"><br>
<!--通过配置get,set方法能够在Action中获得配置的该参数--><br>
<param name="inputPath">/images/img-lg.jpg</param><br>
<result name="success" type="stream"><br>
<param name="contentType">application/octet-stream</param><br>
<!--需要在对应Action中配置,见1)--><br>
<param name="inputName">inputStream</param><br>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param><br>
<param name="bufferSize">8192</param><br>
</result><br>
</action>
Struts2 OGNL动态设置文件参数
public String getDownloadFileName(){
return "abc.jpg";
}
可在配置文件中,通过${downloadFileName}获取参数
-
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——从前台获取下载文件名称 III
Ps:中文名称编码转化。
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
截图
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——从前台获取下载文件名称 II
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
截图
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——从前台获取下载文件名称 I
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
截图
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——文件下载 II
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
截图
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——文件下载 I
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
截图
0赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——上传 国际化信息:app_zh_CN.properties
struts.messages.error.file.too.large=\u4E0A\u4F20\u6587\u4EF6\u592A\u5927\uFF0C\u4E0A\u4F20\u5931\u8D25\uFF01
struts.messages.error.content.type.not.allowed=\u4E0A\u4F20\u6587\u4EF6\u7C7B\u578B\u4E0D\u6B63\u786E\uFF0C\u4E0A\u4F20\u5931\u8D25\uFF01
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
1赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——上传 struts.xml
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" ></constant>
<constant name="struts.devMode" value="true" ></constant>
<constant name="struts.custom.i18n.resources" value="app"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="upload" class="com.imooc.action.FileUploadAction">
<result>/jsp/03.jsp</result>
<result name="input">/jsp/error.jsp</result>
<!-- 配置拦截器限制上传文件类型及大小 -->
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/x-png,image/gif,image/jpeg</param>
<param name="maximumSize">2M</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
1赞 · 0采集
-
-
梦编猿
2016-07-28
- Java中的文件上传下载——FileUploadAction.java
public class FileUploadAction extends ActionSupport {
private List<File> upload;
private List<String> uploadContentType;
private List<String> uploadFileName;
private String result;
setter/getter...
@Override
public String execute() throws Exception {
String path = ServletActionContext.getServletContext().getRealPath("/images");
File file = new File(path);
if(!file.exists()){
file.mkdir();
}
//循环将批量上传的文件保存到本地
for(int i=0;i<upload.size();i++){
FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
}
result="上传成功!";
return SUCCESS;
}
}
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
-
1赞 · 0采集
-
-
庄学爸
2016-04-04
- 返回下载文件的名称如果返回的是中文的,则需要进行编码.
public String getDownloadFileName(){
String str="";
//使用URLEncoder的encode(String con,String type)静态方法进行编码.参数分别是需要进行编码的内容与编码的字符集.
str=URLEncoder.encode("文件下载","utf-8")
return str;
}
-
截图
0赞 · 0采集
-
-
庄学爸
2016-04-04
- action中:
//存放要下载文件的路径与名称,xml中自己配置(固定值).
private String downloadName;
//客户端表单中提交上来下载的文件名.
private String filename;
//动态设置文件下载时的名称,get()方法直接返回一个内容.xml中通过ognl获取.
private String downloadFileName
生成get/set()方法
public String getDownloadFileName(){
return "downloadfile";
}
//getDownloadFile()方法返回的必须是InputStream类型,getResourceAsStream()方法可以通过流的方式将资源输出.
public InputStream getDownloadFile() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream(downloadName);
或者使用FileUtils.openInputStream的方法返回输入流,参数是File对象.
String path=ServletActionContext.getServletContext().getRealPath("/")+"images";
String downLoadpath=path+"/"+filename;
File downLoadFile=new File(downLoadpath);
return FileUtils.openInputStream(downLoadFile);
}
public String execute() throws Exception {
return SUCCESS;
}
}
-
0赞 · 0采集
-
-
庄学爸
2016-04-04
- <result>标签type默认为dispatcher.在处理文件下载的操作时,必须将type显式设置为stream类型.
stream主要向浏览器发送InputStream对象,通常用来处理下载文件,还可用于返回AJAX数据.
接下来就需要设置类型为Stream的<result>标签的三个重要的属性:
contentType属性:用来指定下载文件的类型,图片类型即image/jpg等.文件类型为application/octet-stream或者application/x-msdownload的方式.
contentDisposition属性:用来设定显示的文件名,就是在点击下载链接时显示在提示框中的文件名.该属性可以设定两个值,它的第一个值用来设定文件打开方式,默认的是inline即在浏览器中打开,
也可设定attachment.即无论是什么类型的文件,它也会弹出一个下载框,供用户选择打开或下载.
如<param name="contentDisposition">attachment;filename="Struts2.ppt"</param>
inputName属性:它对应着Action中返回inputStream的方法名,假设inputName设为downFile,则Action中必定有一个返回inputStream的getDownFile()方法.
-
1赞 · 1采集
-
-
庄学爸
2016-04-04
- Struts2实现文件下载:
jsp页面:
下载:<a href="downloadaction.action?filename=1.jpg">1.jpg</a>
请求提交到downloadaction中,Strut.xml中配置该action:
<action name="download" class="com.own.action.DownloadAction">
<param name="downloadName">/images/1.jpg</param>
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
-
0赞 · 0采集
-
-
庄学爸
2016-04-03
- Struts2中的<param>标签和Spring里面的bean差不多的,其实就是一个绑定传递参数(赋值).
<action..>
<param name="username">admin</param>
<result>
<param name="contentType">...</param>
</result>
</action>
第一个<param>用来给action中的属性赋值.action中必须要有该属性,并有对应的set/get方法.
第二个<param>用来为<result>中的属性赋值.
在Action中,可以直接使用ServletActionContext类的getServletContext()静态方法获取得到上下文对象.
ServletContext.getResourceAsStream(String path)
:默认从WebAPP根目录下取资源,Tomcat下path是否以'/'开头无所谓.
FileUtils.openInputStream(File f)方法是打开一个指向File的输出流.
把输入流返回给客户端,因此客户端读取的时候,就可以直接读取该文件的内容.、
使用Strut2实现文件下载,是返回一个输入流给客户端,它会自己读取,不需要在Struts2中通过输出流写入给客户端.
ognl表达式用{}获取Action中的属性值.Action中的属性值必须要有get()方法.
-
0赞 · 0采集
-
-
ITLover
2016-03-18
- 文件下载struts.xml的配置
-
截图
0赞 · 0采集
-
-
Godtrue
2016-03-06
- 听过此讲的感悟:
1:自己以前学习过使用过的技术,自己会不自觉的不好好听,觉得自己会了
2:自己使用过的技术,如果知其然知其所以然,使用起来就非常的灵活,想怎么使用就怎么使用,怎么使用都能正确的使用,否则就会使用的比较笨拙,生搬硬套,仅限于自己看到的使用例子那样使用
3:使用一种技术,如果想能灵活的使用他的话,必须深入的学习和全面的了解他,看他的官方文档是最好的方式之一,又加上自己的项目中正在使用,实验起来非常的方便,不可错过类似的打好机会
4:知识跟新变化增长的速度比较快,我们不可能将所有的知识都放到脑袋里,放在脑袋里的应该是知识的规律,比如:在JavaWeb开发中好多的框架组件的基础都是Servlet规范中的知识,我们需要熟知这一部分的内容,对于其他的各种框架的知识,了解都可以了(有精力和时间做到精通当然好了),对于其他知识也是一样,放在脑袋里的应该是有关知识的规律,一些使用的技巧,可以放在自己的博客或笔记中
5:学习特别是科学类的知识,需要循序渐进,这样即省事有迅速
-
2赞 · 2采集
-
-
sword
2016-02-25
- 文件下载
-
截图
0赞 · 0采集
-
-
qq_苦海无边_0
2015-11-01
- 在上传多个文件时,如何在点击浏览按钮选择文件时可以选择多个文件,而不是要定义多个文件input框一个一个的选择文件。
-
0赞 · 0采集
-
-
Glory_United
2015-08-10
- 返回类型设置。
-
截图
0赞 · 0采集