簡體   English   中英

使用Spring MVC將文件上傳到服務器目錄

[英]File Upload to Server Directory Using Spring MVC

我正在嘗試從客戶端計算機上載文件到服務器目錄。 我使用以下代碼:

FileUpload.jsp

<form:form commandName="fileUpload" action="upload.action" method="post"  enctype="multipart/form-data">
<form:label path="fileData">Upload a File</form:label> <br />
<form:input type="file"  path="fileData" />
<input type="submit" value="upload" >
</form:form>

在我的控制器中:

@RequestMapping("/upload.action")
public String upload(@ModelAttribute("fileUpload") FileUpload fileUpload,HttpServletResponse response,Model model)
{
    CommonsMultipartFile multipartFile = fileUpload.getFileData();
    String orginalName = multipartFile.getOriginalFilename();
    String filePath = "/my_uploads/"+orginalName;
    File destination = new File(filePath);
    String status ="success";
    try {
        multipartFile.transferTo(destination);
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        status="failure";
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        status="iofailure";
    }
    model.addAttribute("status", status);
    return "home";
}

FileUpload.java:

{
   private CommonsMultipartFile fileData;
   ....
}

NullPointerException拋出在String orginalName = multipartFile.getOriginalFilename();String orginalName = multipartFile.getOriginalFilename(); ..我做錯了什么事?

嘗試在您的請求處理程序中將MultipartFile作為參數添加。

@RequestMapping("/upload.action")
public String upload(@RequestParam(value = "file") MultipartFile file,
        HttpServletResponse response,Model model)
{
    //Controller logic...
}

這將需要您在調度程序的配置中注冊一個新bean。

<bean id="multipartResolver"
   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="5000000"/>
</bean>
@RequestMapping("/upload.action")
public String upload(@RequestParam("fileData") MultipartFile file,
        HttpServletResponse response,Model model)
{
    //Controller logic...
}

您的請求處理程序方法的參數中應該具有相同的名稱,無論您在multiupFile(“ fileData”)的FileUpload Pojo中給出的名稱如何

謝謝,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM