当前位置: 首页 > 知识库问答 >
问题:

文件上载中的CompileError

熊俊人
2023-03-14
List<?> items =upload.parseRequest(request);

类型DiskFileUpload中的方法ParserRequest(HttpServletRequest,int,long,String)不适用于参数(HttpServletRequest)

当我以服务器的身份运行时...它会在控制台出现错误

这是我在此代码中的代码list<?>items=upload.parseRequest(request);出错,因为类型DiskFileUpload中的方法parseRequest(HttpServletRequest,int,long,String)不适用于参数(HttpServletRequest)

package br.com.ecommerce.servlet;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.tomcat.util.http.fileupload.disk.*;
import org.apache.tomcat.util.http.fileupload.servlet.*;
import org.apache.tomcat.util.http.fileupload.util.*;


import org.apache.tomcat.util.http.fileupload.DiskFileUpload;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.FileUpload;
import org.apache.tomcat.util.http.fileupload.FileUploadException;
import org.apache.tomcat.util.http.fileupload.RequestContext;

import br.com.ecommerce.bean.Produtos;
import br.com.ecommerce.controller.ExceptionController;
import br.com.ecommerce.dao.CategoriasDao;
import br.com.ecommerce.dao.ProdutosDao;
 class UploadServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public UploadServlet() {
        super();

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/plain");
        Produtos produto = new Produtos();

        String caminhoTemp = new String("C:\\Users\\vaio\\workspace\\ecommerce\\WebContent\\images\\upload");
        String pasta = new String("C:\\Users\\vaio\\workspace\\ecommerce\\WebContent\\images\\upload");
        String caminho = new String("images\\upload\\");

        if (ServletFileUpload.isMultipartContent( request)){

            DiskFileUpload upload = new DiskFileUpload();

            upload.setRepositoryPath(caminhoTemp);

            try{
    List<?> items =upload.parseRequest(request);//In this line i got error..why?..Pls help

                Iterator<?> iter = items.iterator();

                while (iter.hasNext()) {

                    FileItem item = (FileItem) iter.next();

                    if(item.isFormField()){  

                        if(item.getFieldName().equals("nome")){  
                            produto.setProdNome(item.getString().toUpperCase());
                        }

                        else if (item.getFieldName().equals("categoria")){
                            produto.setCategorias(new CategoriasDao().findByPK(Integer.valueOf(item.getString())));
                        }

                        else if (item.getFieldName().equals("preco")){
                            produto.setPreco(Double.valueOf(item.getString()));

                            Double preco = 0d;
                            preco = Double.valueOf(item.getString());
                            preco += 10.00;
                            System.out.println(preco);
                        }

                        else if (item.getFieldName().equals("descp")){
                            produto.setDescPeq(item.getString());
                        }

                        else if (item.getFieldName().equals("descg")){
                            produto.setDescGd(item.getString());
                        }

                        else if (item.getFieldName().equals("espec")){
                            produto.setEspecificacoes(item.getString());
                        }

                        else if (item.getFieldName().equals("itens")){
                            produto.setItensInclusos(item.getString());
                        }

                        produto.setPromocao(0);
                        produto.setDestaque(0);
                }   

                if (!item.isFormField()) {

                    String nome = item.getName().toString();
                    String nomeArquivo = nome.substring(nome.lastIndexOf("\\")+1);

                    File arquivo = new File(pasta + "\\" + nomeArquivo);

                    produto.setImagem(caminho + nomeArquivo);

                    item.write(arquivo);

                }
            }





            }catch(FileUploadException e){

                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            }

            try {
                new ProdutosDao().insert(produto);

            } catch (ExceptionController e) {
                e.printStackTrace();
            }

        response.sendRedirect("/ecommerce/admin/gerenciarProdutos.jsp");

    }

}
enter code here

共有1个答案

钱俊楚
2023-03-14

您是否试图使用Commons FileUpload中的DiskFileUpload类?如果是,请确保您的类正在导入org.apache.commons.FileUpload.DiskFileUpload,而不是其他名为DiskFileUpload的类。

 类似资料:
  • 我正在使用PHP构建一个web应用程序。我正在创建一个文件上传部分,但我有问题。 上载php: 对于图像来说,它工作得很好。但当我尝试检查上传mp4文件时会发生什么情况。它的回声文件已经存在,对不起,只有JPG,JPEG,PNG

  • 我想解析将文件作为多部分/表单数据接受的请求主体。目前,当我尝试将inputStream打印为字符串时,我得到如下结果: 下面是我的控制器。Java语言 上载txt文件 所以基本上,我是在发送sb。toString()返回响应正文。 我的问题是,如何仅从我收到的上述回复中提取内容数据? 我尝试使用多部分文件,但仍然没有成功

  • 我有一个表单,其中一个信息,用户将上传一个图像。我想将图像的路径存储在数据库中,并将图像保存到服务器上的文件夹中。 使用以下方法打开表单:

  • 我正在尝试用Java以块形式上载文件。 我的块上载功能: 这就是文件服务API的外观:

  • 嗨,我正在尝试使用多部分表单上传多个文件 我使用这个,但我得到了错误的请求状态,我如何上传多个文件?

  • 我希望能够将图像上传到服务器,优雅地处理错误和异常,并在表单中向用户显示错误消息,并且理想情况下仅使用现有的准系统Spring Boot和Thymeleaf安装。 使用示例项目gs-上载文件,我可以使用Spring Boot和Thymeleaf将文件上载到服务器。在application.properties中,我设置了和。但是,当我上传大于1MB的文件时,几个安全和验证问题没有解决。 > 可以上