下传-代码
上传-代码
刚写的上传处理方式,想从代码,效率上分析代码的质量。
参考资料: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; } }