<%
String path=request.getContextPath();
String uploadPath=path+"\\uploadfile\\upload";// 上传文件的目录
String tempPath = "c:\\uploadfile\\tmp\\"; // 临时文件目录
String filename="";
Date dd=new Date();
// System.out.println("upload"+dd.getTime()+"新的");
filename="upload"+dd.getTime()+"";
boolean isMultipart=FileUpload.isMultipartContent(request);
if(!isMultipart){
response.sendRedirect("fileupload.html");
}
try{
// 实例化一个硬盘文件工厂,用来配置上传组件fileupload
DiskFileItemFactory factory=new DiskFileItemFactory();
// 设置上传文件时用于临时存放文件的大小,这里是1024K,大于此大小的文件无法上传
factory.setSizeThreshold(1024000);
// 设置存放临时文件的目录
File temp=new File(tempPath);
// factory.setRepository(new File(tempPath));
factory.setRepository(temp);
//用以上工厂实例对象创建文件上传处理器
FileUpload fileupload=new FileUpload(factory);
//设置最大上传量为100M
fileupload.setSizeMax(100*1024*1024);
// 从request得到 所有 上传域的列表
List items=fileupload.parseRequest(request);
// 得到所有上传的文件
Iterator itr=items.iterator();
// 循环处理所有文件
while(itr.hasNext()){
// 得到当前文件
FileItem fileitem=(FileItem)itr.next();
// 忽略其他不是文件域的所有表单信息
if(!fileitem.isFormField()){
// 得到文件的完整路径
String name=fileitem.getName();
System.out.println(name);
// 得到去除路径的文件名
name=name.substring(name.lastIndexOf("\\")+1,name.length());
// System.out.println(name+"wwww");
// 得到文件的大小
long size=fileitem.getSize();
if((name==null||name.equals(""))&&size==0)
continue;
//获取文件类型(文件的扩展名)
name=name.substring(name.lastIndexOf('.'),name.length());
// System.out.println(uploadPath+File.separator+filename+name);
// 保存文件
fileitem.write(new File(uploadPath+File.separator+filename+name));
}
}
}catch(Exception e){
e.printStackTrace();
}
response.sendRedirect("fileupload.html");
%>
问题是上传文件的时候报错说java.io.FileNotFoundException: \fileupload\uploadfile\upload\upload1292147946657.txt (系统找不到指定的路径。)我知道是我建的文件夹和程序的不一致,请帮忙改怎按这个程序建相应的文件夹啊?
在webroot下建 uploadfile再在uploadfile下建 upload
还是不行
String path=request.getContextPath();
String uploadPath=path+"\\uploadfile\\upload";// 上传文件的目录
String tempPath = "c:\\uploadfile\\tmp\\"; // 临时文件目录
String filename="";
Date dd=new Date();
// System.out.println("upload"+dd.getTime()+"新的");
filename="upload"+dd.getTime()+"";
boolean isMultipart=FileUpload.isMultipartContent(request);
if(!isMultipart){
response.sendRedirect("fileupload.html");
}
try{
// 实例化一个硬盘文件工厂,用来配置上传组件fileupload
DiskFileItemFactory factory=new DiskFileItemFactory();
// 设置上传文件时用于临时存放文件的大小,这里是1024K,大于此大小的文件无法上传
factory.setSizeThreshold(1024000);
// 设置存放临时文件的目录
File temp=new File(tempPath);
// factory.setRepository(new File(tempPath));
factory.setRepository(temp);
//用以上工厂实例对象创建文件上传处理器
FileUpload fileupload=new FileUpload(factory);
//设置最大上传量为100M
fileupload.setSizeMax(100*1024*1024);
// 从request得到 所有 上传域的列表
List items=fileupload.parseRequest(request);
// 得到所有上传的文件
Iterator itr=items.iterator();
// 循环处理所有文件
while(itr.hasNext()){
// 得到当前文件
FileItem fileitem=(FileItem)itr.next();
// 忽略其他不是文件域的所有表单信息
if(!fileitem.isFormField()){
// 得到文件的完整路径
String name=fileitem.getName();
System.out.println(name);
// 得到去除路径的文件名
name=name.substring(name.lastIndexOf("\\")+1,name.length());
// System.out.println(name+"wwww");
// 得到文件的大小
long size=fileitem.getSize();
if((name==null||name.equals(""))&&size==0)
continue;
//获取文件类型(文件的扩展名)
name=name.substring(name.lastIndexOf('.'),name.length());
// System.out.println(uploadPath+File.separator+filename+name);
// 保存文件
fileitem.write(new File(uploadPath+File.separator+filename+name));
}
}
}catch(Exception e){
e.printStackTrace();
}
response.sendRedirect("fileupload.html");
%>
问题是上传文件的时候报错说java.io.FileNotFoundException: \fileupload\uploadfile\upload\upload1292147946657.txt (系统找不到指定的路径。)我知道是我建的文件夹和程序的不一致,请帮忙改怎按这个程序建相应的文件夹啊?
在webroot下建 uploadfile再在uploadfile下建 upload
还是不行
看看这个
或者你在程序里面把你的工程的根目录的绝对路径打出来就明确了
**是要在编译器里面创建