- 论坛徽章:
- 0
|
代码如下
import java.util.*
import java.io.*
import org.apache.commons.fileupload.*//用的是apache的一个上传组件
import com.test.db.*//自己写连接数据库的类
DiskFileUpload dfu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节
dfu.setSizeMax(10000000);
// 设置最多只允许在内存中存储的数据,单位:字节
dfu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
String f_gonggao="news"; //设定文件夹名称
String m_path=request.getRealPath("/")+f_gonggao+"\\";
java.io.File r_path=new java.io.File(m_path);
if(!r_path.exists()){
r_path.mkdir();
}
String strURL = m_path;
System.out.println("路径名"+strURL);
dfu.setRepositoryPath(strURL);
//开始读取上传信息
try{
List fileItems = dfu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
String name =null;
long size=0;
while (iter.hasNext()) {
FileItem fi = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!fi.isFormField()) {
name = fi.getName();
size = fi.getSize();
if((name==null||name.equals("")) && size==0)
continue; }
name=fi.getName();
size=fi.getSize();
name = name.replace(':','_');
name = name.replace('\\','_');
File writeFile=new File(strURL,name);
String shangchuanlujing = f_gonggao+"\\"+name;
DBCls objDB = new DBCls();
objDB.ExeSQL("update xiangmushenbao set shangchuanlujing= '"+shangchuanlujing);//这里是SQL语句把上传的相对路径存到数据库中
fi.write(writeFile);
}
}catch(FileUploadException fue)
{ fue.printStackTrace();
response.sendRedirect("ErrorPage.jsp");
} |
|