Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jsp和servlet将文件上载到服务器和解析表单时出现的问题_Java_Jsp_Servlets - Fatal编程技术网

Java 使用jsp和servlet将文件上载到服务器和解析表单时出现的问题

Java 使用jsp和servlet将文件上载到服务器和解析表单时出现的问题,java,jsp,servlets,Java,Jsp,Servlets,我尝试将文件上传到服务器,并将表单中的数据粘贴到数据库元组中。但是什么都没发生/我对这有点陌生,所以为愚蠢的错误感到抱歉。 这里的表单来自upload.jsp: <form action="controller" method="post" enctype="multipart/form-data"> <input type="hidden" name="command" value="addLabWork"> <input type="hi

我尝试将文件上传到服务器,并将表单中的数据粘贴到数据库元组中。但是什么都没发生/我对这有点陌生,所以为愚蠢的错误感到抱歉。 这里的表单来自
upload.jsp

<form action="controller" method="post" enctype="multipart/form-data">
      <input type="hidden" name="command" value="addLabWork">
      <input type="hidden" name="exactCurriculumId" value="${exactCurriculum.id}"/>
      <input type="hidden" name="number" value="${labs.size() + 1}">
      <input type="text" name="title" placeholder="Назва лабораторної роботи"/>
      <input type="number" name="credits" placeholder="Бали"/>
      <input type="file" name="taskFile" placeholder="Файл завдання"/>
      <input type="submit" value="Додати"/>
</form>

接下来-我尝试从servlet中的表单获取参数,将文件写入文件夹,并使用hibernate将实体写入数据库

String LABS_FOLDER = "C:\\uploads";
String page = ConfigurationManager.getInstance()
            .getProperty(ConfigurationManager.EXACT_CURRICULUM_LAB_WORKS_PAGE);

String filePath = null;

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

Map<String, String> params = new HashMap<>();

try {
    File file;
    List<FileItem> fields = upload.parseRequest(request);
    Iterator<FileItem> it = fields.iterator();
    for (FileItem fileItem : fields) {                

        if (fileItem.isFormField()) {
            params.put(fileItem.getFieldName(), fileItem.getString());

        } else {
            String filename = fileItem.getName();
            filePath = LABS_FOLDER + File.separator + filename;
            file = new File( filePath);
            fileItem.write(file);  
        }
    }

} catch (FileUploadException ex) {
    Logger.getLogger(AddLaboratoryWorkCommand.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
    Logger.getLogger(AddLaboratoryWorkCommand.class.getName()).log(Level.SEVERE, null, ex);
}

int exactCurrId = Integer.parseInt(params.get("exactCurriculumId"));
ExactGroupCurriculum egc = DAOFactory.getInstance()
        .getExactGroupCurriculumDAO()
        .findExactGroupCurriculumById(exactCurrId);

int number = Integer.parseInt(params.get("number"));
String title = params.get("title");
int credits = Integer.parseInt(params.get("credits"));

LaboratoryWork lab = new LaboratoryWork();
lab.setCredits(credits);
lab.setNumber(number);
lab.setTitle(title);
lab.setExactCurriculum(egc);
lab.setFilePath(filePath);

DAOFactory.getInstance().getLaboratoryWorkDAO().addLaboratoryWork(lab);
stringlabs\u FOLDER=“C:\\uploads”;
String page=ConfigurationManager.getInstance()
.getProperty(ConfigurationManager.EXACT\u课程\实验室\工作\页面);
字符串filePath=null;
FileItemFactory=new DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
Map params=新的HashMap();
试一试{
文件;
列表字段=upload.parseRequest(请求);
迭代器it=fields.Iterator();
对于(FileItem:fields){
if(fileItem.isFormField()){
put(fileItem.getFieldName(),fileItem.getString());
}否则{
字符串文件名=fileItem.getName();
filePath=LABS\u FOLDER+File.separator+filename;
文件=新文件(文件路径);
fileItem.write(文件);
}
}
}catch(FileUploadException-ex){
Logger.getLogger(AddLaboratoryWorkCommand.class.getName()).log(Level.SEVERE,null,ex);
}捕获(例外情况除外){
Logger.getLogger(AddLaboratoryWorkCommand.class.getName()).log(Level.SEVERE,null,ex);
}
int exactCurrId=Integer.parseInt(params.get(“exactCurrId”);
ExactGroupCourseEGC=DAOFactory.getInstance()
.getExactGroupCoursulumDao()
.findexactgroupculumbyid(exactCurrId);
int number=Integer.parseInt(params.get(“number”));
字符串title=params.get(“title”);
int credits=Integer.parseInt(params.get(“credits”);
LaboratoryWork lab=新的LaboratoryWork();
实验室设置学分(学分);
实验室设置编号(编号);
实验室设置标题(标题);
实验课程(egc);
lab.setFilePath(filePath);
DAOFactory.getInstance().getLaboratoryWorkDAO().addLaboratoryWork(实验室);

但什么也没发生。哪里会出错?

您是否尝试在servlet中设置断点?你观察到了什么?已经有一段时间了,但我相当有信心,对于java/tomcat来说,文件上传不是现成的。我们总是需要使用这个库。是的,我使用的是commons fileupload和io库