当前位置:编程学习 > JAVA >>

高手都来讨论讨论啦!jsp上传文件话题~~

--------------------编程问答-------------------- 0.0
............................ --------------------编程问答-------------------- 获取文件上传进度属于客户端的程序 所以flash最适合 
其实java代码页可以实现你想要的效果 不过需要Ajax间隔发送请求到服务端 对这么一个小小的功能来说 代价是在是太特么大了  --------------------编程问答-------------------- 我这里有超大附件上传的控件,

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

import org.apache.struts.upload.FormFile;

public class Upload {
public void Upload (){}
public String AddPic(FormFile file,String dir,int uid) throws Exception, IOException{
if(file!=null){
String pathName=file.getFileName();
InputStream streamIn = null;
streamIn = file.getInputStream();
OutputStream streamOut = null;
Date date=new Date();
String picpath = (date.getTime()/123)+"_"+uid+pathName.substring(pathName.indexOf("."),pathName.length());
String k=this.dir(dir+"/",picpath);
String u=dir+"/"+k;
streamOut = new FileOutputStream(u);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();
file.destroy();
return k;
}else{
return "";
}
}
public void DelPic(String dir){
File f=new File(dir);
f.delete();
}

public String dir(String path,String u){
File x=new File(path+u);
if(x.isFile()){
String pic=u.substring(0,u.indexOf("."));
String pic2=u.substring(u.indexOf("."));
int i=pic.indexOf("(");
if(i<0){
u=pic+"(1)"+pic2;
u=dir(path,u);
}else{
int z=Integer.parseInt(u.substring(i+1, i+2));
z++;
u=u.substring(0,i)+"("+z+")"+pic2;
u=dir(path,u);
}
}
return u;
}

public String Addfile(FormFile file,String dir,int uid) throws Exception, IOException{
if(file!=null){
String pathName=file.getFileName();
InputStream streamIn = null;
streamIn = file.getInputStream();
OutputStream streamOut = null;
Date date=new Date();

//String picpath = (file.getFileName()+"_"+date.getTime()/123)+"_"+uid+pathName.substring(pathName.indexOf("."),pathName.length());
String picpath = (date.getTime()/123)+"_"+uid+pathName.substring(pathName.indexOf("."),pathName.length());

String k=this.dir(dir+"/",picpath);
String u=dir+"/"+k;
streamOut = new FileOutputStream(u);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();
file.destroy();
return k;
}else{
return "";
}
}
}
swfupload有多文件上传的控件, --------------------编程问答-------------------- 也有进度条 --------------------编程问答-------------------- --------------------编程问答-------------------- commons-fileupload 有监听器可以用来做进度条
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,