SpringMVC檔案上傳(檔名不重複)
阿新 • • 發佈:2022-03-20
1)表單項type=“file”
2)表單的提交方式是post
3)表單的enctype屬性是多部分表單形式,及enctype=“multipart/form-data”
單檔案上傳步驟
1)匯入fileupload和io座標
2)配置檔案上傳解析器
3)編寫檔案上傳程式碼
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.4</version> </dependency>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="5242800"/> <!--上傳單個檔案的大小--> <property name="maxUploadSizePerFile" value="5242800"/> <!--上傳檔案的編碼型別--> <property name="defaultEncoding" value="UTF-8"/> </bean>>
編寫業務層 Controller 上傳程式碼
@RequestMapping(value = "mmm") @ResponseBody public String say12(MultipartFile files) throws IOException { String filen = files.getOriginalFilename(); File file = new File("H:\\"+filen); int i = 0; while (file.exists()){ i++; file = new File("H:\\"+i+filen); //如果檔案存在名稱相同的則加字首或者加時間戳 } file.createNewFile(); InputStream ins = files.getInputStream(); BufferedInputStream bis =new BufferedInputStream(ins); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); byte[] by =new byte[1024]; int len; while ((len = bis.read(by)) != -1){ bos.write(by); } bos.close(); bis.close(); return "Successupload!"; }
form表單
<form action="http://localhost:8080/user/mmm" method="post" enctype="multipart/form-data">
<input type="file" name="files">
<input type="submit" value="ssss">
</form>