java文件上傳(單文件 多文件)與刪除
更新時(shí)間:2017年01月24日 14:30:30 作者:衣兜里
本文主要分享了java文件上傳(單文件 多文件)與刪除的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
話不多說(shuō),請(qǐng)看代碼
/**
* 文件上傳--單文件
*
* @param request
* @param response
* @param path
* 文件存放路徑(path為WebApp\后面的內(nèi)容)
* @return
*/
public final static String fileUpload(HttpServletRequest request,
HttpServletResponse response, String path) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
MultipartFile mFile = null;
for (Iterator<?> i = fileMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
mFile = (MultipartFile) fileMap.get(obj);
}
String filePath = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
try {
// 得到上傳的文件的文件名
String filename = mFile.getOriginalFilename();
// 獲取文件后綴名
if (filename != null && !("").equals(filename)) {
String fileExt = filename.substring(filename.lastIndexOf("."));
// 按時(shí)間格式重新生成文件名
String newFileName = sdf.format(new Date())
+ (int) (Math.random() * 100) + fileExt;
filePath = path + "/" + newFileName;
// 得到上傳服務(wù)器的物理路徑
path = request.getSession().getServletContext()
.getRealPath("\\" + path);
// 文件流寫(xiě)到服務(wù)器端
File saveFile = new File(path, newFileName);
FileCopyUtils.copy(mFile.getBytes(), saveFile);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return filePath;
}
/**
* 文件上傳--多文件
*
* @param request
* @param response
* @param filePaths
* (fileinputId,WebApp\后面的內(nèi)容)
* @return
*/
public final static Map<String, Object> fileUploads(
HttpServletRequest request, HttpServletResponse response,
String path) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
Map<String, Object> filePaths = new HashMap<String, Object>();
// 得到上傳服務(wù)器的物理路徑
String fileUrl = request.getSession().getServletContext()
.getRealPath("\\" + path);
for (Iterator<?> i = fileMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
MultipartFile mFile = (MultipartFile) fileMap.get(obj);
// 得到上傳的文件的文件名
String filename = mFile.getOriginalFilename();
if (filename == "" || filename == null) {
continue;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
// 獲取文件后綴名
String fileExt = filename.substring(filename.lastIndexOf("."));
// 按時(shí)間格式重新生成文件名
String newFileName = sdf.format(new Date())
+ (int) (Math.random() * 100) + fileExt;
String filePath = path + "/" + newFileName;
// 文件流寫(xiě)到服務(wù)器端
try {
filePaths.put(obj.toString(), filePath);
File saveFile = new File(fileUrl, newFileName);
FileCopyUtils.copy(mFile.getBytes(), saveFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return filePaths;
}
/**
* 刪除文件,
*
* @param request請(qǐng)求
* @param filePath文件路徑
* (static/upload/...)
* @return
*/
public static boolean fileDelete(HttpServletRequest request, String filePath) {
String fileUrl = request.getSession().getServletContext()
.getRealPath("\\" + filePath);// 得到上傳服務(wù)器的物理路徑
File file = new File(fileUrl);
fileDelete(file);
return false;
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
您可能感興趣的文章:
- java Springboot實(shí)現(xiàn)多文件上傳功能
- JavaWeb實(shí)現(xiàn)多文件上傳及zip打包下載
- java實(shí)現(xiàn)多文件上傳至本地服務(wù)器功能
- Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能
- uploadify java實(shí)現(xiàn)多文件上傳和預(yù)覽
- JavaBean實(shí)現(xiàn)多文件上傳的兩種方法
- Java中多媒體文件上傳及頁(yè)面回顯的操作代碼
- java 文件上傳(單文件與多文件)
- Java實(shí)現(xiàn)ftp文件上傳下載解決慢中文亂碼多個(gè)文件下載等問(wèn)題
- Java實(shí)現(xiàn)多文件上傳功能
相關(guān)文章
Spring源碼之事件監(jiān)聽(tīng)機(jī)制(實(shí)現(xiàn)EventListener接口方式)
這篇文章主要介紹了Spring源碼之事件監(jiān)聽(tīng)機(jī)制(實(shí)現(xiàn)EventListener接口方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Spring Boot 整合單機(jī)websocket的步驟 附github源碼
websocket 是一個(gè)通信協(xié)議,通過(guò)單個(gè) TCP 連接提供全雙工通信,這篇文章主要介紹了Spring Boot 整合單機(jī)websocket的步驟(附github源碼),需要的朋友可以參考下2021-10-10
Java web spring異步方法實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Java web spring異步方法實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
idea全局搜索快捷鍵超詳細(xì)總結(jié)(推薦!)
在實(shí)際開(kāi)發(fā)中項(xiàng)目會(huì)非常多,如何在項(xiàng)目中快速定位,你說(shuō)需要找到的類(lèi)或方法,可以利用idea的全局搜索功能,下面這篇文章主要給大家分享介紹了關(guān)于idea全局搜索快捷鍵超詳細(xì)總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-01-01
Java/Spring項(xiàng)目的包開(kāi)頭為什么是com詳解
這篇文章主要介紹了Java/Spring項(xiàng)目的包開(kāi)頭為什么是com的相關(guān)資料,在Java中包命名遵循域名反轉(zhuǎn)規(guī)則,即使用公司的域名反轉(zhuǎn)作為包的前綴,以確保其全球唯一性和避免命名沖突,這種規(guī)則有助于邏輯分層、代碼可讀性提升和標(biāo)識(shí)代碼來(lái)源,需要的朋友可以參考下2024-10-10

