2013-10-15 27 views
0

那麼我的任務就是上傳一個文件,當有兩個應用程序(app)需要不同類型的上傳時,一個app被稱爲APA,其他的是fSCG。當我刪除,如果APA其他SCG的代碼工作,如果我使用如果APA其他SCG我得到空錯誤。請看下面的代碼在控制器錯誤中使用「multipart/form-data」上傳文件中的隱藏變量值

在我的JSP代碼如下 -

<form name="upload" action="/call" enctype= "multipart/form-data" method="POST"> 
    Select file: <input type="file" name="file"/> 
    <input type="hidden" name="app" value="${app}"/> 
    <input type="submit" value="Upload"/> 
</form> 

這是Java控制器類

@RequestMapping(value = "/call", method = RequestMethod.POST) 
public void process(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    final String app = request.getParameter("app"); 
    **if (app.equals(APA) {** This is where the error is 


     boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
     response.setContentType("text/html"); 
      java.io.PrintWriter out = response.getWriter(); 

     if (!isMultipart) { 

      return; 

     } 
     out.println("<h2> File is successfully uploaded<h2>"); 
     DiskFileItemFactory factory = new DiskFileItemFactory(); 
     ServletFileUpload upload = new ServletFileUpload(factory); 

     try { 
      // Parse the request 
      List items = upload.parseRequest(request); 
      Iterator iter = items.iterator(); 
      while (iter.hasNext()) { 
       FileItem item = (FileItem) iter.next(); 

       if (!item.isFormField()) { 
        String fileName = new File(item.getName()).getName(); 
        String uploadFolder = "C:\\Users; 
        String filePath = uploadFolder + File.separator + fileName; 
        File uploadedFile = new File(filePath); 

        item.write(uploadedFile); 

       } 
      } 

     } catch (FileUploadException ex) { 
      throw new ServletException(ex); 
     } catch (Exception ex) { 
      throw new ServletException(ex); 
     } 
    } 

else if 

如果(app.equals(SCG)){**這裏錯誤 上傳代碼幾乎與上面相同 }

爲什麼我不能上傳,如果應用程序,請給我提供一些可能的東西給例子

+0

不要使用這個老同學文件上傳的方式。 Spring爲此註解。 –

+0

你可以添加註釋到現有的代碼,我不太瞭解春天,這是緊急工作 – user2847197

+0

谷歌'春天上傳文件'。 –

回答

0

爲了訪問上傳的文件在春天,你必須添加在你的MVC配置文件(又名bean.xml)以下字段:

<!-- Multipart resolver to be used for file uploading mechanisms --> 
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <property name="maxUploadSize" value="1000000"/> 
</bean> 

然後你就可以訪問你的Controller上傳文件的內容和元數據類如:

@RequestMapping(value = "register") 
public void register(MultipartFile uploadedFile){ 
    System.out.println(uploadedFile.getContentType()); 
    System.out.println(uploadedFile.getOriginalFileName()); 
    System.out.println(uploadedFile.getSize()); 

    byte[] fileContents = uploadedFile.getBytes(); 
} 
0

試試這個

@RequestMapping(value = "register") 
public void register(@RequestParam(value="file") MultipartFile uploadedFile,@RequestParam(value="app")String app){ 
    System.out.println(uploadedFile.getContentType()); 
    System.out.println(uploadedFile.getOriginalFileName()); 
    System.out.println(uploadedFile.getSize()); 
}