parseRequest(request)的使用
使用commons-fileupload上传文件。因为表单中除了file控件还有两个和idden。所以在后台使用要两次使用parseRequest(request)。代码...
使用commons-fileupload上传文件。因为表单中除了file控件还有两个和idden。所以在后台使用要两次使用parseRequest(request)。
代码如下:
DiskFileUpload dfu =new DiskFileUpload();
List list = dfu.parseRequest(request);
Iterator iterator = list.iterator();
开始遍历iterator
第一次使用可以得到iterator 里面的每一个值,但是第二次想专程读File的时候,iterator.next() == false;
不知道是什么原因。
如果有什么办法可以绕开的话,也请说明。
好的答案会加分的。
写错了,是iterator.hasnext() == false
另外,那段代码是写在不同的方法里面的。都是靠request来传参数的。
就是要遍历两次。
否则一旦观察到file里面放了东西就上传的话,服务器受不了啊 展开
代码如下:
DiskFileUpload dfu =new DiskFileUpload();
List list = dfu.parseRequest(request);
Iterator iterator = list.iterator();
开始遍历iterator
第一次使用可以得到iterator 里面的每一个值,但是第二次想专程读File的时候,iterator.next() == false;
不知道是什么原因。
如果有什么办法可以绕开的话,也请说明。
好的答案会加分的。
写错了,是iterator.hasnext() == false
另外,那段代码是写在不同的方法里面的。都是靠request来传参数的。
就是要遍历两次。
否则一旦观察到file里面放了东西就上传的话,服务器受不了啊 展开
2个回答
展开全部
String location = "";
String descn = "";
String upload = "";
String parent = "";
String fileName = "";
String WEBUPLOADPATH = "";
try{
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload1 = new ServletFileUpload(factory);
upload1.setFileSizeMax(5242880);
List items = upload1.parseRequest(request);
Iterator it = items.iterator();
ResourceBundle rb = ResourceBundle.getBundle("applicationresources");
String WEBAPPREALPATH = rb.getString("WEBAPPREALPATH");
WEBUPLOADPATH = rb.getString("WEBUPLOADPATH");
File fileTemp = new File(WEBAPPREALPATH+WEBUPLOADPATH);
try{
if(!fileTemp.exists()){
fileTemp.mkdirs();
}
}catch(Exception e){
e.printStackTrace();
return 1;
}
while(it.hasNext()){
FileItem item = (FileItem) it.next();
if(item.isFormField()){
if(item.getFieldName().equals("location")){
location = item.getString();
}else{
descn = item.getString();
}
}else{
upload = item.getName();
String fileType = upload.substring(upload.lastIndexOf(".")+1,upload.length()).toLowerCase();
if((!fileType.equals("bmp"))&&(!fileType.equals("jpg"))&&(!fileType.equals("jpeg"))&&(!fileType.equals("gif"))&&(!fileType.equals("png"))){
return 2;
}
String str[] = { "a", "b", "c", "d", "e", "f", "g",
"h", "i", "j" };
Random tmp = new Random();
fileName = System.currentTimeMillis()
+ str[tmp.nextInt(10)] + "." + fileType;
item.write(new File(WEBAPPREALPATH+WEBUPLOADPATH+"/"+fileName));
}
}
parent = WEBAPPREALPATH+WEBUPLOADPATH;
}catch(Exception e){
e.printStackTrace();return 5;
}
用item.isFormField()来判断
遍历一次就OK了
String descn = "";
String upload = "";
String parent = "";
String fileName = "";
String WEBUPLOADPATH = "";
try{
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload1 = new ServletFileUpload(factory);
upload1.setFileSizeMax(5242880);
List items = upload1.parseRequest(request);
Iterator it = items.iterator();
ResourceBundle rb = ResourceBundle.getBundle("applicationresources");
String WEBAPPREALPATH = rb.getString("WEBAPPREALPATH");
WEBUPLOADPATH = rb.getString("WEBUPLOADPATH");
File fileTemp = new File(WEBAPPREALPATH+WEBUPLOADPATH);
try{
if(!fileTemp.exists()){
fileTemp.mkdirs();
}
}catch(Exception e){
e.printStackTrace();
return 1;
}
while(it.hasNext()){
FileItem item = (FileItem) it.next();
if(item.isFormField()){
if(item.getFieldName().equals("location")){
location = item.getString();
}else{
descn = item.getString();
}
}else{
upload = item.getName();
String fileType = upload.substring(upload.lastIndexOf(".")+1,upload.length()).toLowerCase();
if((!fileType.equals("bmp"))&&(!fileType.equals("jpg"))&&(!fileType.equals("jpeg"))&&(!fileType.equals("gif"))&&(!fileType.equals("png"))){
return 2;
}
String str[] = { "a", "b", "c", "d", "e", "f", "g",
"h", "i", "j" };
Random tmp = new Random();
fileName = System.currentTimeMillis()
+ str[tmp.nextInt(10)] + "." + fileType;
item.write(new File(WEBAPPREALPATH+WEBUPLOADPATH+"/"+fileName));
}
}
parent = WEBAPPREALPATH+WEBUPLOADPATH;
}catch(Exception e){
e.printStackTrace();return 5;
}
用item.isFormField()来判断
遍历一次就OK了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
不知道你这是什么,看样子好难呀,不过路过顶一下,不懂编程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询