有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在jsp或multipart/formdata中上载文件

实际上,在使用jsp中的common upload lib进行上传之前,我正在尝试获取要上传的文件数,并且我制作了一个获取文件数的函数,如下所示:

public static int getUploadFileCount(HttpServletRequest request) throws FileUploadException
{
    int Result = 0;

    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = upload.parseRequest(request);
    for (FileItem item : items) 
    {
        if (!item.isFormField())
        Result++;
    }       

    return Result;
}

并在此业务逻辑中使用此函数:

public void doChangeProfilePhoto(HttpServletRequest request) throws FileUploadException
{
    if(UploadFileUtil.getUploadFileCount(request) != 1)
        throw new FileUploadException("There is Multiple/None File upload for Profile Photo. ");
    ProfileImage newProfileImage = new ProfileImage();
    newProfileImage.setFileName("sam.jpg");
    if(new UploadBPOProfilePhotoImpl().uploadPhoto(newProfileImage, request))
    {}
}

在调用uploadPhoto函数后的代码中,还使用相同的代码逐个检索文件,如下所示:

    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = upload.parseRequest(request);
    for (FileItem item : items) // Did not get file if i already used this code once For getting the files count:
    {
        if (!item.isFormField())
        //did for makeing file and writing/saving it with a name
    }     

所以这里我得到的问题是,当我使用这个代码时,它并没有得到文件,当我使用相同的代码来计算文件时

如果我评论这两行,我用它来获取照片中的文件数,如下所示:

//if(UploadFileUtil.getUploadFileCount(request) != 1)
//    throw new FileUploadException("There is Multiple/None File upload for Profile Photo. ");

然后它就开始工作了。为什么会发生这样的情况:如果有一次使用它,那么在它无法检索文件之后。这背后的原因是什么 有没有办法用普通上传来计算文件数。。。还有他们的名字


共 (0) 个答案