java實現檔案上傳_後端
阿新 • • 發佈:2018-11-27
maven:
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency>
java後端程式碼:
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.multipart.MultipartFile; import net.sf.json.JSONObject; /** * 檔案上傳工具類 */ public class UploadFileUtil { private static final Logger log = LoggerFactory.getLogger(UploadFileUtil.class); /** * 驗證檔案是否已經存在 * @param uploadPath * @param fileName */ public static String checkFile(String uploadPath,String fileName) { Map<String, Object> data = new HashMap<String, Object>(); boolean result = Boolean.TRUE; try { String filePath = uploadPath + File.separator + fileName; File date = new File(filePath); if (date.exists()) { data.put("isExists", Boolean.TRUE); data.put("fileMsg", "檔案已存在!是否覆蓋!"); } else { data.put("isExists", Boolean.FALSE); } } catch (Exception e) { log.error(e.getMessage(), e); result = Boolean.FALSE; data.put("errorMsg", "檔案上傳失敗!"); } data.put("success", result); String jsonStr = JSONObject.fromObject(data).toString(); return jsonStr; } /** * 檔案上傳 * @param uploadfile * @param request * @param uploadPath * @param fileName */ public static String uploadFile(MultipartFile uploadfile, String uploadPath,String fileName) { Map<String, Object> data = new HashMap<String, Object>(); boolean result = Boolean.TRUE; String uploadFileName = null; try { InputStreamReader read = new InputStreamReader(uploadfile.getInputStream(), "utf-8"); BufferedReader bufferedReader = new BufferedReader(read); StringBuffer jsonContent = new StringBuffer(); String content = ""; while ((content = bufferedReader.readLine()) != null) { jsonContent.append(content); } String filePath = uploadPath + File.separator + fileName; File date = new File(filePath); FileOutputStream fop = null; fop = new FileOutputStream(date); byte[] contentInBytes = jsonContent.toString().getBytes(); fop.write(contentInBytes); fop.flush(); fop.close(); read.close(); } catch (Exception e) { log.error(e.getMessage(), e); result = Boolean.FALSE; data.put("errorMsg", "檔案上傳失敗!"); } data.put("success", result); data.put("resultMsg", uploadFileName + "上傳成功!"); String jsonStr = JSONObject.fromObject(data).toString(); return jsonStr; } }