- 论坛徽章:
- 0
|
下载COS包(
http://www.servlets.com/cos/index.html
);最后更新时间是2002年的11月05日,比较久远的一个包了。网上查了些资料,发现COS的使用非常方便,只要写一个简单的JSP页面就搞定了,具体代码如下(copy了很多前辈的代码):
%@page import="java.io.*,java.util.*,com.hing.upload.*"%>
%@page import="com.oreilly.servlet.MultipartRequest"%>
%@page contentType="text/html; charset=gb2312" %>
%
//文件上传后,保存在c:upload
String saveDirectory ="c:upload";
//每个文件最大5m,最多3个文件,所以...
int maxPostSize =3 * 100 * 1024 * 1024;
//response的编码为"gb2312",同时采用相应的命名策略(我用了自己的实现方法)冲突解决策略,实现上传
RandomFileRenamePolicy rfrp=new RandomFileRenamePolicy();
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"gb2312",rfrp);
//输出反馈信息
Enumeration files = multi.getFileNames();
while (files.hasMoreElements()) {
String name = (String)files.nextElement();
File f = multi.getFile(name);
if(f!=null){
String fileName = multi.getFilesystemName(name);
String lastFileName= saveDirectory+"" + fileName;
out.println("sucess:"+lastFileName);
out.println("
");
}
}
%>
考虑到自己的项目需要,我使用了自己的命名策略,只要实现了FileRenamePolicy接口中的rename(File file)方法即可,实现非常方便,COS有个默认的命名策略DefaultFileRenamePolicy,只要存在重名,就会在文件名后面加上1.2.3....等数字,不想麻烦的就可以直接以下代码:
RandomFileRenamePolicy rfrp=new RandomFileRenamePolicy();
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"gb2312",rfrp);
替换成:
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"gb2312");
最后附上我自己的命名策略文件(其实就是简单地用时间戳命名而已)。
package com.tian.upload;
import java.io.File;
import java.util.Date;
import com.oreilly.servlet.multipart.FileRenamePolicy;
public class RandomFileRenamePolicy implements
FileRenamePolicy {
public File rename(File file) {
// TODO Auto-generated method stub
String body="";
String ext="";
int pot=file.getName().lastIndexOf(".");
if(pot!=-1){
body=(new Date()).getTime()+"";
ext=file.getName().substring(pot);
}else{
body=(new Date()).getTime()+"";
ext="";
}
String newName=body+ext;
file=new File(file.getParent(),newName);
return file;
}
}
摘自 周建东的《优秀的上传组件--COS》一文
http://tmsoft.lsxy.com/index.php?job=tags&seekname=%E4%B8%8A%E4%BC%A0
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/484/showart_668313.html |
|