import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.UUID;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
public class UploadUtil {
/**
* 上傳文件
* @param muiltRequest
* @param path
* @return
* @throws IOException
*/
public static String uploadFile(MultipartHttpServletRequest muiltRequest,
String path) throws IOException {
// 獲取遍歷文件名
Iterator iter=muiltRequest.getFileNames();
String url=""; //返回的圖片路徑
while (iter.hasNext()) {
MultipartFile file=muiltRequest.getFile(iter.next().toString());
System.out.println("-->>>"+file);
if(!file.isEmpty()||file!=null) { //獲取原始文件名
String filename = file.getOriginalFilename();
InputStream is = file.getInputStream(); // 獲取輸入流,MultipartFile中可以直接得到文件的流
int pos = filename.lastIndexOf("."); // 取文件的格式
//唯一標識數字
UUID uuid = UUID.randomUUID();
String filenameurl = path + '\\' + uuid + filename.substring(pos);
try {
// 獲取輸出流
OutputStream os = new FileOutputStream(filenameurl);
// 創建一個緩沖區
byte[] buffer = new byte[1024];
// 判斷輸入流中的數據是否已經讀完的標識
int len = 0;
// 循環將輸入流讀入到緩沖區當中,(len=is.read(buffer))>0就表示is里面還有數據
while ((len = is.read(buffer)) > 0) {
// 使用FileOutputStream輸出流將緩沖區的數據寫入到指定的目錄當中
os.write(buffer, 0, len);
}
os.flush();
os.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// url = url + uuid + filename.substring(pos)+";";
url = url + filenameurl+";";
}
}
url=url.substring(0, url.length()-1);
return url;
}
}
參考:
http://lijie-insist.iteye.com/blog/2331021
http://www.cnblogs.com/fjsnail/p/3491033.html