Java文件上傳下載
阿新 • • 發佈:2019-05-02
json mms getpara turn files 編碼 上傳文件 ret character
Java文件上傳下載
/** * 上傳文件 */ public String uploadFile() throws IOException, Exception { if (getRequestContext().haveUploadFile()) { String channelId = getRequest().getParameter("channelId"); JfileItem fileItem = getRequestContext().getUploadFiles().get(0); // 文件名 String fileName = fileItem.getName(); DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String uploadFileName = df.format(new Date()) + fileName; // 文件類型 int n = fileName.lastIndexOf("."); String type = fileName.substring(n + 1); // 上傳路徑 String path = getRequest().getServletContext().getRealPath("") + "\\uploadfiles\\"; //獲取輸出流 OutputStream os = new FileOutputStream(path + uploadFileName); // 獲得輸入流 InputStream is = fileItem.getInputStream(); // 寫入 byte[] buffer = new byte[512]; int temp; while ((temp = is.read(buffer)) != (-1)) { os.write(buffer, 0, temp); } os.flush(); os.close(); is.close(); // 將文件信息寫入數據庫 FileUpload fileUpload = new FileUpload(); fileUpload.setFileName(fileName); fileUpload.setFileLocation(uploadFileName); fileUpload.setFileChannelId(channelId); fileUploadService.save(fileUpload); } return getOutJson().toString(); } /** * 下載文件 */ public String downloadFile() throws Exception { String id = getRequest().getParameter("id"); FileUpload fileUpload = fileUploadService.getById(id); // 根路徑 String path = getRequest().getServletContext().getRealPath("") + "\\uploadfiles\\"; // 下載文件的路徑 String filePath = path + fileUpload.getFileLocation(); // 文件名 String fileName = fileUpload.getFileName(); fileName = URLEncoder.encode(fileName, "UTF-8"); HttpServletResponse response = getResponse(); // 設置文件ContentType類型,自動判斷下載文件類型 response.setContentType("multipart/form-data"); // 設置編碼 response.setCharacterEncoding("utf-8"); // 設置文件頭,最後一個參數是設置下載文件名 response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); // 通過文件路徑獲得File對象 File file = new File(filePath); FileInputStream is = new FileInputStream(file); // 通過response獲取OutputStream對象 OutputStream os = response.getOutputStream(); // 寫入 byte[] buffer = new byte[512]; int i; while ((i = is.read(buffer)) != -1) { os.write(buffer, 0, i); } os.flush(); os.close(); is.close(); return getOutJson().toString(); }
Java文件上傳下載