Java中如何上傳圖片/文件等..?
第一步:更改我們的form表單爲多文件方式
<form id="itemForm" action="${pageContext.request.contextPath }/updateitem.action" method="post" enctype="multipart/form-data">
第二步:配置我們的tomcat的虛擬目錄,所有的文件上傳都到這個目錄來
第三步:導入上傳文件必須依賴的兩個jar包
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
第四步:配置我們的圖片上傳的解析器
<!-- 配置我們的文件上傳解析器,用於限制我們圖片的格式,圖片的大小等 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 限制每個文件的最大值 爲5M,單位爲字節數組-->
<property name="maxUploadSize" value="5242880"></property>
</bean>
第五步:Jsp頁面通過input
來選擇文件
<tr>
<td>商品圖片</td>
<td>
<c:if test="${item.pic !=null}">
<img src="/pic/${item.pic}" width=100 height=100/>
<br/>
</c:if>
<input type="file" name="pictureFile"/>
</td>
</tr>
第六步:Controller後臺接收文件
@RequestMapping("/updateitem.action")
public String updateItem(Items items,MultipartFile pictureFile) throws IllegalStateException, IOException{
//打印出來就是abc.png
String originalFilename = pictureFile.getOriginalFilename();
//獲取我們uuid的字符串
String random = UUID.randomUUID().toString();
//截取我們文件名的後綴
String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
//獲取我們文件的最新的名稱
String newFileName = random+substring;
//通過File.separator來獲取我們文件上傳的路徑的分隔符,這個會自動的根據服務器的類型來判斷用什麼分隔符
//如果是linux是/
//如果是windows \\
File file = new File("F:\\picupload"+File.separator+newFileName);
//將我們上傳的文件轉移到目標文件當中去
pictureFile.transferTo(file);
System.out.println(originalFilename);
itemService.updateItem(items);
return "success";
}