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 "";
}
}