刚写的上传处理方式,想从代码,效率上分析代码的质量。
参考资料:1.http://www.blogjava.net/lishunli/archive/2010/01/07/308614.html
ACTION部分:
private File upload;
private String uploadFileName;
...
//如果在上传新文件
if(upload != null) {
FileUploadUtils fUtil = new FileUploadUtils();
String path = fUtil.upload(upload, uploadFileName, "/uploadFiles/imperson/");
if(null != path) {
this.entity.setPhoto(path);
}
}
JSP 部分:
<input name="upload" type="file"/>
<s:if test="photo!=null">
<span id="zp"><img src="${basePath }/${photo}"/><a href="javascript:deleteFile('zp',photo);">删除</a></span><BR/>
</s:if>
JS 部分:
function deleteFile(obj,inputName){
$.dialog.confirm("您确定要删除该文件吗?",function(){
$("#"+obj+"").hide();
$("input[name='"+inputName+"']").val("");
})
}
上传类:
package com.scctt.impr.util;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
/**
* Description: 文件上传,需要绑定页面文件input框name为upload,在action中绑定File upload和String
* uploadFileName,如果需要调用多次则自己循环upload,并调用upload方法;
* 方法返回上传后文件中服务器存放的文件名;注意:要在自己的方法里保证上传文件不为空的时候,再去new此对象并调用方法,if(upload!=null){自己的方法内容}
* 例: //如果在上传新文件
* if(upload != null) { FileUploadUtils fUtil = new
* FileUploadUtils(); String path = fUtil.upload(upload, uploadFileName,
* "/uploadFiles/imperson/"); if(null != path) {
* this.entity.setPhoto(path); } }
*
* 如有多个文件需要上传,那么绑定的时候,请把上传的输入框的name设置好,比如第一个上传输入框的name是upload,那么对应的文件名为uploadFileName,其他同理。具体参考下例:
* private File upload; private String uploadFileName; private File upload1;
* private String upload1FileName; private File upload2; private String
* upload2FileName;
*
* @author WN
* @date 2012-8-24
* @version 1.0
*/
public class FileUploadUtils {
/**
* Description:上传方法,注意设置好folder属性,设置好后直接可以使用
* @param upload 文件
* @param uploadFileName 文件名
* @param folder 文件目录
* @return
* @author WN
* @update [日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
public String upload(File upload, String uploadFileName, String folder) {
String path = null;
if(upload != null) {
String targetDirectory = ServletActionContext.getServletContext().getRealPath(folder);//
String realName = UUID.randomUUID() + uploadFileName.substring(uploadFileName.lastIndexOf("."));
File target = new File(targetDirectory, realName);
try {
FileUtils.copyFile(upload, target);
path = folder + realName;
//System.out.println("文件已上传至:"+targetDirectory);
}catch(IOException e) {
e.printStackTrace();
}
}
return path;
}
}
分享到:
相关推荐
Minio对象存储及Springboot整合Minio分片上传文章----代码
HECO标准智能合约-代码功能后面注释已备注-欢迎学习及使用
零起飞CRM管理系统(07FLY-CRM)-代码审计(任意件删除+RCE+任意件上传+SQL注)这选择从数据库名称 $dbname 下, 服务器连接地址, 数据
zySystem-wpf架构版-代码演示,项目是演示类的,可以运行,支持各类型数据库,利用了MVVM框架,上传给大家一起分享。
请使用“flex 文件上传下载完整代码(修正版)”http://download.csdn.net/source/1815266
Linux运维-运维课程MP4频-05容器-88代码自动发布系统介绍-项目代码上传至gitlab-
ASP文件上传代码--实现远程上传功能,简单易懂,内含操作手册。
----------示例包括: ...文件上传 ---------- 使用axis2通过自编写的server端生成wsdl,通过wsdl生成服务(aar,将aar文件放入tomcat/webapps/axis2/WEB-INF/services下),再通过wsdl生成客户端,通过客户端调用服务
文件上传-----------------代码完整,包括所用jar包
王正林精通MATLAB科学计算源代码-《精通MATLAB科学计算》-------源代码.rar 上传个附件给大家,蛮好的,呵呵 王正林 龚纯 何倩等编著 《精通MATLAB科学计算》(第二版) 2010年6月 附件为这本书的大量科学...
本文档系上传者另一份上传文件,山东大学计算机网络课程设计-模拟路由器源代码的说明文档。转载请注明出处。
亚马逊开店系列-产品上传----如何发布没有全球贸易项目代码(UPC、EAN、JAN 或 ISBN)的商品.pdf
上传下载文件 Java
之前下载过three.js开发指南的代码,发现很有代码都是无法运行的。所以找了一份没有问题的代码上传,让朋友少走点弯路。由于资源太大,所以分开上传,这一部分只是代码部分。
文件上传下载,java代码实现
很好的批量上传代码,很好的批量上传代码,很好的批量上传代码.
nginx-upload文件上传代码和工具
亚马逊开店系列-产品上传----如何发布没有全球贸易项目代码(UPC、EAN、JAN 或 ISBN)的商品.rar
该资源内项目源码是个人的毕业设计作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2...
上传图片并且浏览--各种浏览器都兼容的代码