Struts 1 对Apache的commons-fileupload进行了再封装,把上传文件封装成FormFile对象
定义UploadForm:
private FormFilefile; //上传的文件 private Stringtext; //文件备注 //省略setter、getterJSP:
<html:from action="/upload?method=upload" enctype="multipart/form-data"> 文件:<html:file property="file"></html:file> <br/> 备注:<html:textarea property="text"></html:textarea> <br/> <html:submit value=”开始上传”/> </html:form>处理上传操作的action:
UploadForm uploadForm = (UploadForm) form; StringBuffer buffer = new StringBuffer(); if(uploadForm.getFile()!= null && uploadForm.getFile().getSize()>0){ //获取文件夹/WEB-INF/classes File classes = new File(getClass().getClassLoader().getResource("").getFile()); //获取文件夹/upload File uploadFolder = new File(classes.getParentFile().getParentFile(),"upload"); uploadFolder.mkdirs(); //保存到/upload文件夹下面 File file = new File(uploadFolder, uploadForm.getFile().getFilename()); OutputStreat ous = null; InputStream ins = null; try{ byte [] byt = new byte [1024]; int len = 0; ins =uploadForm.getFile().getInputStream(); ous = new FileOutputStream(file); while((len = ins.read(byt))!=-1){ ous.write(byt,0,len); } }finally{ ins.close(); ous.close(); } //点击即可下载 buffer.append("文件:"+"<a href=upload/>"+file.getName()+"target=_blank>"+file.getName()+"</a><br/>"); }else{ buffer.append("没有选择文件!<br/>"); } buffer.append("备注:"+ uploadForm.getText()+"<br/>"); response.setCharacterEncoding("UTF-8"); response.getWriter().writer(buffer.toString());
相关文章
- cocos2d-x之Android版接sdk的那些坑,第三方so文件打不进apk或者为1kb
- 用Struts2更好的实现文件的上传、下载功能以及解决中文名称问题
- 关于在Struts2框架下实现文件的上传功能
- JAVA中如何实现1G左右的大文件上传和下载,有没有例子给个参考?
- Struts2+extjs 传输1g大文件时,页面鼠标一直转圈,页面很卡!
- JS+Struts2多文件上传完整示例
- struts2+jquery之form插件实现异步上传图片并显示
- 让UpdatePanel支持文件上传(1):开始 .
- Struts2实现文件上传(四)
- [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)