`
qhuwn
  • 浏览: 72104 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

上传-代码

阅读更多

刚写的上传处理方式,想从代码,效率上分析代码的质量。

参考资料: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;
 }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics