1. 程式人生 > >TOMCAT在eclipse上重新部署後就會刪除之前的圖片資源解決

TOMCAT在eclipse上重新部署後就會刪除之前的圖片資源解決

1.首先在tomcat的server.xml 中的host 新增
 <Context docBase="F:\images"  reloadable="true"  debug="0" path="/img"/>
 新增圖片對映到其餘的碟符

2.修改上傳的檔案的程式碼
 

 


/**
	 * 上傳到window環境的圖片
	 */
	public static AjaxJson uploadImageWindows(MultipartFile  multipartFile,HttpServletRequest request) {
		AjaxJson j = new AjaxJson();
		InputStream is = null;
		OutputStream os = null;
		try {
			// 獲取檔名稱
			String originalFilename = multipartFile.getOriginalFilename();
			// 獲取檔案的字尾
			String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
			// 使用現在的 時間作為圖片的新名稱
			String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());

			// 獲取資料夾在Windows上的 真是檔案路徑 例如: upload資料夾
			//String realPath = request.getServletContext().getRealPath("img");
			String realPath ="f:/images";//真實碟符 ====>tomcat會自動對映f:/images====>img
			// 建立儲存圖片的資料夾
			String path = realPath + File.separator ;
			// 不存在就建立
			File file = new File(path);
			if (!file.exists()) {
				file.mkdirs();
			}
			// 儲存檔案
			file = new File(path + File.separator + fileName + suffix);

			is = multipartFile.getInputStream();
			os = new FileOutputStream(file);
			// 拷貝檔案
			copyFile(is, os);
			j.setSuccess(true);
			j.setObj("img" + File.separator + fileName + suffix);//返回的圖片地址
		} catch (Exception e) {
			j.setSuccess(false);
			j.setMsg("系統繁忙,請稍後重試");
			e.printStackTrace();
		} finally {
			try {
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return j;
	}

3.訪問圖片的url地址
http://localhost:8080/img/20181101231837750.gif