SpringMVC上傳入門

一、配置文件:
SpringMVC 用的是 的MultipartFile來進行文件上傳 所以我們首先要配置MultipartResolver:用於處理表單中的file

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="maxUploadSize" value="10485760000"></property>  
    <property name="maxInMemorySize" value="40960"></property>  
    <property name="uploadTempDir" value="fileUpload"></property>
</bean>

其中屬性詳解:
defaultEncoding=”UTF-8” 是請求的編碼格式,默認爲iso-8859-1
maxUploadSize=”5400000” 是上傳文件的大小,單位爲字節
uploadTempDir=”fileUpload/temp” 爲上傳文件的臨時路徑

二、創建一個簡單的上傳表單:

<body>  
<h2>文件上傳實例</h2>  
<form action="${pageContext.request.contextPath}/update/fileUpdate.action"   
           method="post" enctype="multipart/form-data">
     文件:<input type="file"  name="file1">
     <input type="submit" value="提交">
</form>
</body>

注意要在form標籤中加上enctype=”multipart/form-data”表示該表單是要處理文件的,這是最基本的東西,很多人會忘記然而當上傳出錯後則去找程序的錯誤,卻忘了這一點

三、編寫上傳控制類

1、創建一個控制類: FileUploadController和一個返回結果的頁面list.jsp
2、編寫提交表單的action。
3、使用SpringMVC註解RequestParam來指定表單中的file參數;
4、指定一個用於保存文件的web項目路徑
5、通過MultipartFile的transferTo(File Xxx)這個方法來轉存文件到指定的路徑。

@RequestMapping("/Upload/")
@Controller
public class TestExportExcel {

    @RequestMapping("fileUpload")
    public ModelAndView importExcel(@RequestParam("file1") MultipartFile file,  
                HttpServletRequest request){
        ModelAndView modelAndView = new ModelAndView();
        // 判斷文件是否爲空  
        if (!file.isEmpty()) {  
            // 文件保存路徑  
            String filePath = request.getSession().getServletContext().getRealPath("/") + "fileUpload/"  
                    + file.getOriginalFilename();  
            // 轉存文件  
            try {
                file.transferTo(new File(filePath));
                modelAndView.setViewName("/return.jsp");
                modelAndView.addObject("result", file.getOriginalFilename()+"上傳成功");
            } catch (Exception e) {
                modelAndView.addObject("result", file.getOriginalFilename()+"上傳失敗");
                e.printStackTrace();
            } 
        }
        return modelAndView;
    }
}
WebContent下:return.jsp只有一句代碼:
${result}

MultipartFile類常用的一些方法:
String getContentType()//獲取文件MIME類型
InputStream getInputStream()//後去文件流
String getName() //獲取表單中文件組件的名字
String getOriginalFilename() //獲取上傳文件的原名
long getSize() //獲取文件的字節大小,單位byte
boolean isEmpty() //是否爲空
void transferTo(File dest) //保存到一個目標文件中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章