获取复选框的值以及上传文件 [英] Getting values of checkboxes along with uploading the file

查看:88
本文介绍了获取复选框的值以及上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆