JAVA文件上傳是我們網(wǎng)絡(luò)操作經(jīng)常使用的一個功能,但因代碼較多,每個上傳都重復(fù)寫, 會顯得非常麻煩,所以這里形成一個類,方便我們重復(fù)使用
一. Java源生上傳文件
package utils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Part; import java.io.File; import java.util.Properties; import java.util.UUID; public class UploadFile { //返回上傳文件的名字 public static String getFileName(HttpServletRequest request,String filedName){ //得到上傳文件開始 String pic = ""; try{ Part file = request.getPart(filedName); String fileName = file.getSubmittedFileName(); String ext = fileName.substring(fileName.lastIndexOf(".")); // String filePath = request.getServletContext().getRealPath("/")+"upload"; //從配置文件讀取目錄 Properties props = PropertiesGet.getResult("/config.properties"); String filePath = props.getProperty("uploads"); File uploadDir = new File(filePath); if(!uploadDir.exists()){ uploadDir.mkdirs(); } pic = UUID.randomUUID().toString() + ext; //上傳文件后的文件名 String fileUploadPath = uploadDir + File.separator + pic; file.write(fileUploadPath); } catch (Exception e){ System.out.println(e.getMessage()); } return pic; } }
調(diào)用方法如下:
String pic = UploadFile.getFileName(request,"pic");
源代碼下載:
二. SpringMVC上傳類
1. 需要將 commons-fileupload 組件相關(guān)的 JAR(commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar)復(fù)制到 Spring MVC 應(yīng)用的 WEB-INF/lib 目錄下
2. Springmvc-servlet.xml里面做配置
<!-- 配置MultipartResolver,用于上傳文件,使用spring的CommonsMultipartResolver -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
package tool; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.Properties; import java.util.UUID; public class UploadFile { public static String getFileName(MultipartFile file){ if(!file.isEmpty()){ String fileName = file.getOriginalFilename(); String ext = fileName.substring(fileName.lastIndexOf(".")); String pic = UUID.randomUUID().toString() + ext; try { Properties prop = GetProperties.getResult("/config.properties"); String upload = prop.getProperty("upload"); File targetFile = new File(upload, pic); if (!targetFile.exists()) { targetFile.mkdirs(); } try { file.transferTo(targetFile); return pic; } catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } return ""; } }