获取复选框的值以及上传文件 [英] Getting values of checkboxes along with uploading the file
本文介绍了获取复选框的值以及上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用commonsIO和Jar在Java中上传图像进行文件上传.但是面临的问题是我的表单上有两个复选框,如下所示:
I was trying to upload an image in java using commonsIO and Jar for file upload.But the problem am facing is that i am having two checkboxes on my form as follow :
<div style="float:left">
<input name="Mcheckbox" type="checkbox" value="Mobile"/>
Mobile
</div>
<div style="float:right">
<input name="Echechkbox" type="checkbox" value="Email"/>
Email
</div>
然后浏览选项:
Upload Image : <INPUT TYPE="file" NAME="file" value="file"></input>
在我的servlet中,正在做这样的事情:
And in my servlet am doing something like this :
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
List<FileItem> files = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
Iterator it = files.iterator();
然后:
while (it.hasNext()) {
FileItem fi = (FileItem) it.next();
if (fi.isFormField()) {
if (fieldname.compareTo("Mcheckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
mymobilepass = fieldvalue;
} else if (fieldname.compareTo("Echeckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
myemailpass = fieldvalue;
}
} else {
InputStream is = fi.getInputStream();
FileOutputStream fos = new FileOutputStream(path + "\\" + fi.getName());
int x = is.read();
while (x >= 0) {
fos.write((byte) x);
x = is.read();
//System.out.println("reading");
}
}
}
但是每次myemailpass或mymobilepass的值都为null.这可能是什么原因?if语句从不执行.为什么?请帮助
But am getting null as the value of myemailpass or mymobilepass everytime.What can be the reason ? The if statement is never executed .Why ? Please help
推荐答案
问题是您没有在循环中设置 fieldvalue
The problem is that you do not set fieldvalue
in your loop
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> files = new ServletFileUpload(factory).parseRequest(request);
for (FileItem item : files) {
if (item.isFormField()) {
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
if (fieldname.compareTo("Mcheckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
mymobilepass = fieldvalue;
} else if (fieldname.compareTo("Echeckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
myemailpass = fieldvalue;
}
} else {
InputStream is = item.getInputStream();
FileOutputStream fos = new FileOutputStream(path + "\\" + fi.getName());
int x = is.read();
while (x >= 0) {
fos.write((byte) x);
x = is.read();
//System.out.println("reading");
}
}
}
这篇关于获取复选框的值以及上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文