public class Upload {
private static long lastTime;
private static int n;
public static synchronized String getNo(){
long time=System.currentTimeMillis();
if(time==lastTime){
return time+ "_ "+n++;
}else{
n=0;
lastTime=time;
return time+ "_ "+n;
}
}
private List <FileItem> files=new ArrayList <FileItem> ();
private HashMap <String,String> parameters=new HashMap <String,String> ();
public Upload(HttpServletRequest request) throws FileUploadException{
DiskFileUpload fu = new DiskFileUpload();
fu.setHeaderEncoding( "gb2312 ");
fu.setSizeMax(200000000);
fu.setSizeThreshold(4096);
List fileItems = fu.parseRequest(request);
int length=fileItems.size();
for(int i=0;i <length;i++){
FileItem fi=(FileItem)fileItems.get(i);
if (fi.isFormField()) {
String name = fi.getFieldName();
String value = fi.getString();
parameters.put(name,value);
}else{
files.add(fi);
}
}
}
public Accessory saveFile(FileItem fi) throws Exception{
if(fi.getName()==null||fi.getName().equals( " ")) return null;
String name=null;
String fileName = fi.getName();
name = fileName.substring(fileName.lastIndexOf( "\\ ") + 1 , fileName.length());
String temp=Upload.getNo();
String type=fileName.substring(fileName.lastIndexOf( ". "));
String tempName=temp+type;
File file=new File( "D:/temp/ "+tempName);
// File parent=file.getParentFile();
// if(!parent.exists())parent.mkdirs();
fi.write(file);
Accessory accessory=new Accessory();
accessory.setName(name);
accessory.setTempName(tempName);
accessory.setPath( "D:/temp/ ");
return accessory;
}
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i=0;i <s.length();i++) {
char c = s.charAt(i);
if (c > = 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes( "utf-8 ");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append( "% " + Integer.toHexString(k).
toUpperCase());
}
}
}
return sb.toString();
}
public Accessory saveFile(FileItem fi,String filePath) throws Exception{
File rootPathFileDir = new File(filePath);
if (rootPathFileDir.length() == 0 && !rootPathFileDir.isDirectory()){
rootPathFileDir.mkdirs();
} else if (!rootPathFileDir.isDirectory()){
rootPathFileDir.mkdirs();
}
filePath = rootPathFileDir.getPath();
filePath = filePath.replaceAll( "\\\\ ", "/ ");
System.out.println(rootPathFileDir.getPath());
String name=null;
String fileName = fi.getName();
name = fileName.substring(fileName.lastIndexOf( "\\ ") + 1 , fileName.length());
String temp=Upload.getNo();
String type=fileName.substring(fileName.lastIndexOf( ". "));
String tempName=temp+type;
File file=new File(filePath+ "/ "+tempName);
// File parent=file.getParentFile();
// if(!parent.exists())parent.mkdirs();
fi.write(file);
Accessory accessory=new Accessory();
accessory.setName(name);
accessory.setTempName(tempName);
accessory.setPath(filePath);
return accessory;
}
public List <FileItem> getFiles() {
return files;
}
public HashMap <String, String> getParameters() {
return parameters;
}
}
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
wzhting
动感地蛋
等级:
发表于:2007-07-18 15:22:372楼 得分:0
下面是一个servlet版本。拷贝可以直接使用
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import ziva.commons.util.ChineseEncoding;
import com.sduept.sail.web.util.FileViewerBean;
/**
* @author laiy
*
*/
/**
* Servlet Class
*
* @web.servlet name= "Upload "
* display-name= "Upload "
* description= "动态产生资产类型树的节点 "
* @web.servlet-mapping url-pattern= "/function/Servlet/fileupload.jsp "
* @web.servlet-mapping url-pattern= "/function/functionupload/Servlet/fileupload.jsp "
*/
public class Upload extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 3567258888041432676L;
/**
* @param args
*/
// private String uploadPath = "D:\\learn\\java\\test\\ "; // 用于存放上传文件的目录
private String tempPath = FileViewerBean.TEMPDIR; // 用于存放临时文件的目录
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
init();
try {
// String uploadPath = request.getParameter( "uploadfilepath ");//上传文件路径
// String uploadFileName =request.getParameter( "uploadfilename ");//上传文件名称
String filepath = request.getParameter( "savefilepath ");
// String filename = request.getParameter( "savefilename ");
DiskFileUpload fu = new DiskFileUpload();
fu.setHeaderEncoding( "GB2312 ");
// 设置最大文件尺寸
fu.setSizeMax(4194304);
// 设置缓冲区大小
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
// 获得文件名,这个文件名包括路径:
String fileName = getFilename(fi.getName());
if (fileName != null) {
File upLoadfile = new File(filepath + "\\ "+ fileName);
if (upLoadfile.length() > 1){
throw new Exception( "上传文件已存在,请重新选择! ");
}
fi.write(upLoadfile);
}
}
out.println( "File Upload Sucess! ");
out.println( " <script> window.history.back(); </script> ");
} catch (Exception e) {
// 可以跳转出错页面
out.println( " 上传文件出错! " + e.getMessage());
e.printStackTrace();
}
}
private String getFilename(String name) {
String rename = null;
if (null != name) {
int index = name.lastIndexOf( "\\ ");
rename = name.substring(index+1,name.length());
}
return rename;
}
public void init() throws ServletException {
// 文件夹不存在就自动创建:
//if(!new File(uploadPath).isDirectory())
// new File(uploadPath).mkdirs();
if(!new File(tempPath).isDirectory())
new File(tempPath).mkdirs();
}
}
- 1
- 2
- 3
- 4
前往页