日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java上傳下載文件并實現加密解密

瀏覽:208日期:2022-09-02 18:52:02

使用 Jersey 服務器實現上傳,使用 HTTP 請求實現下載

引入依賴

在 pom.xml 中添加 Jersey 相關依賴

<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.18.1</version></dependency>

創建工具類

import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.ClientHandlerException;import com.sun.jersey.api.client.UniformInterfaceException;import com.sun.jersey.api.client.WebResource;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;import java.util.UUID;public class FileUtils { // 加密/解密文件的密鑰 public static final int CRYPTO_SECRET_KEY = 0x99; public static int FILE_DATA = 0; /** * 加密/解密 文件 * @param srcFile 原文件 * @param encFile 加密/解密后的文件 * @throws Exception */ public static void cryptoFile(File srcFile, File encFile) throws Exception { InputStream inputStream = new FileInputStream(srcFile); OutputStream outputStream = new FileOutputStream(encFile); while ((FILE_DATA = inputStream.read()) > -1) { outputStream.write(FILE_DATA ^ CRYPTO_SECRET_KEY); } inputStream.close(); outputStream.flush(); outputStream.close(); } /** * MultipartFile 生成臨時文件 * @param multipartFile * @param tempFilePath 臨時文件路徑 * @return File 臨時文件 */ public static File multipartFileToFile(MultipartFile multipartFile, String tempFilePath) { File file = new File(tempFilePath); // 獲取文件原名 String originalFilename = multipartFile.getOriginalFilename(); // 獲取文件后綴 String suffix = originalFilename.substring(originalFilename.lastIndexOf('.')); if (!file.exists()) { file.mkdirs(); } // 創建臨時文件 File tempFile = new File(tempFilePath + '' + UUID.randomUUID().toString().replaceAll('-', '') + suffix); try { if (!tempFile.exists()) {// 寫入臨時文件multipartFile.transferTo(tempFile); } } catch (IOException e) { e.printStackTrace(); } return tempFile; } /** * 上傳文件 * @param fileServerPath文件服務器地址 * @param folderPath 存放的文件夾路徑(比如存放在文件服務器的 upload 文件夾下,即 ”/upload“) * @param uploadFile需要上傳的文件 * @param isCrypto是否加密 * @return String文件上傳后的全路徑 */ public static String uploadByJersey(String fileServerPath, String folderPath, File uploadFile, boolean isCrypto) { String suffix = uploadFile.getName().substring(uploadFile.getName().lastIndexOf('.')); String randomFileName = UUID.randomUUID().toString().replaceAll('-', '') + suffix; String fullPath = fileServerPath + folderPath + '/' + randomFileName; try { if (isCrypto) {// 創建加密文件File cryptoFile = new File(uploadFile.getPath().substring(0, uploadFile.getPath().lastIndexOf('.')) + 'crypto' + uploadFile.getPath().substring(uploadFile.getPath().lastIndexOf('.')));// 執行加密cryptoFile(uploadFile, cryptoFile);// 保存加密后的文件uploadFile = cryptoFile; } // 創建 Jersey 服務器 Client client = Client.create(); WebResource wr = client.resource(fullPath); // 上傳文件 wr.put(String.class, fileToByte(uploadFile)); } catch (Exception e) { e.printStackTrace(); } return fullPath; } /** * 下載文件 * @param url 文件路徑 * @param filePath 文件保存路徑 * @param fileName文件名稱(包含文件后綴) * @param isCrypto 是否解密 * @return File */ public static File downloadByURL(String url, String filePath, String fileName, boolean isCrypto) { File file = new File(filePath); if (!file.exists()) { file.mkdirs(); } FileOutputStream fileOut; HttpURLConnection httpURLConnection; InputStream inputStream; try { URL httpUrl = new URL(url); httpURLConnection = (HttpURLConnection) httpUrl.openConnection(); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.connect(); inputStream = httpURLConnection.getInputStream(); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); if (!filePath.endsWith('')) {filePath += ''; } file = new File(filePath + fileName); fileOut = new FileOutputStream(file); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOut); byte[] bytes = new byte[4096]; int length = bufferedInputStream.read(bytes); //保存文件 while (length != -1) {bufferedOutputStream.write(bytes, 0, length);length = bufferedInputStream.read(bytes); } bufferedOutputStream.close(); bufferedInputStream.close(); httpURLConnection.disconnect(); } catch (Exception e) { e.printStackTrace(); } if (isCrypto) { try {// 創建解密文件File cryptoFile = new File(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getServletContext().getRealPath('/') + 'temp' + UUID.randomUUID().toString().replaceAll('-', '') + file.getName().substring(file.getName().lastIndexOf('.')));// 執行解密cryptoFile(file, cryptoFile);// 刪除下載的原文件file.delete();// 保存解密后的文件file = cryptoFile; } catch (Exception e) {e.printStackTrace(); } } return file; } /** * 刪除文件服務器上的文件 * @param url 文件路徑 * @return boolean */ public static boolean deleteByJersey(String url) { try { Client client = new Client(); WebResource webResource = client.resource(url); webResource.delete(); return true; } catch (UniformInterfaceException e) { e.printStackTrace(); } catch (ClientHandlerException e) { e.printStackTrace(); } return false; } /** * File轉Bytes * @param file * @return byte[] */ public static byte[] fileToByte(File file) { byte[] buffer = null; try { FileInputStream fileInputStream = new FileInputStream(file); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; int n; while ((n = fileInputStream.read(bytes)) != -1) {byteArrayOutputStream.write(bytes, 0, n); } fileInputStream.close(); byteArrayOutputStream.close(); buffer = byteArrayOutputStream.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer; }}

測試上傳

/** * @param multipartFile 上傳文件 * @param isCrypto 是否加密文件 * @return */@Testpublic String upload(MultipartFile multipartFile, boolean isCrypto) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); // 生成臨時文件 File tempFile = FileUtil.multipartFileToFile(multipartFile, request.getServletContext().getRealPath('/') + 'statictemp'); // 上傳文件并返回文件路徑 String uploadFilePath = FileUtil.uploadByJersey('http://localhost:8080', '/upload', tempFile, isCrypto); if (uploadFilePath != null) { return '上傳成功'; } else { return '上傳失敗'; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区在线视频| 久久亚洲影院| 激情欧美亚洲| 巨乳诱惑日韩免费av| 国产日韩在线观看视频| 成人免费一区| 国产亚洲高清一区| 中文国产一区| 亚洲成a人片| 久久99精品久久久久久园产越南 | 精品亚洲a∨一区二区三区18| 99免费精品| 中文一区一区三区免费在线观| av资源亚洲| 免费在线观看一区| 欧美一区成人| 亚洲伊人精品酒店| 亚洲精品2区| 日本美女一区| 高清日韩中文字幕| 国产精成人品2018| 日本免费新一区视频| 综合激情五月婷婷| 午夜久久福利| 狠狠操综合网| 欧美日韩精品免费观看视欧美高清免费大片| 人人精品久久| 久久中文字幕av一区二区不卡| 久久精品国产亚洲一区二区三区| 久久亚洲风情| 亚洲精品一区二区妖精| 婷婷激情一区| 亚洲在线久久| 亚洲区国产区| 欧美日一区二区| 欧美不卡高清一区二区三区| 国产69精品久久| 久久影院午夜精品| 国产成人黄色| 丝袜美腿诱惑一区二区三区 | 蜜臀久久99精品久久久画质超高清| 欧美日韩国产综合网| 99热精品在线观看| 在线免费观看亚洲| 日本免费一区二区视频| 国产精品美女久久久久久不卡| 国产精品99久久免费| 国产h片在线观看| 久久婷婷一区| 中文字幕av一区二区三区四区| 亚洲男人在线| 欧美一区91| 国产不卡一区| 久久久久国产| 亚洲欧洲av| 欧美特黄一区| 福利在线一区| 亚洲综合婷婷| 亚洲黄色中文字幕| 久久中文字幕av一区二区不卡| 亚洲精品在线国产| 久久99偷拍| 亚洲精品国产偷自在线观看| 日本不卡不码高清免费观看| 久久的色偷偷| 免费视频亚洲| 日韩欧美激情电影| 日韩精品一区二区三区中文在线 | 羞羞答答国产精品www一本| 中文字幕日本一区二区| 欧美国产不卡| 99视频精品| 久久精品国产99国产| 日韩av中文字幕一区二区| 麻豆国产欧美一区二区三区 | 亚洲高清成人| 国产99精品| 欧美一区91| 午夜精品婷婷| 日韩成人精品一区| 日本成人在线网站| 日韩毛片在线| 亚洲影院天堂中文av色| 麻豆免费精品视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二区三区亚洲| 久久亚洲电影| 免费久久99精品国产| 欧美一级网站| 国产调教精品| 久久精品国产久精国产爱| 日韩电影免费网址| 国产亚洲精品美女久久久久久久久久| 日本综合字幕| 91视频一区| 国产精品日本一区二区三区在线| 在线 亚洲欧美在线综合一区| 天堂av一区| 国产一区清纯| 视频福利一区| 米奇777超碰欧美日韩亚洲| 国产一区二区三区不卡视频网站 | 欧美亚洲国产一区| 精品国产午夜肉伦伦影院 | 欧美日韩高清| 欧美中文一区二区| 国产一区二区三区自拍| 久久国产精品美女| 日韩中文字幕在线一区| 美女网站一区| 麻豆mv在线观看| 久久精品天堂| 精品国产乱码| 欧美亚洲国产日韩| 日本vs亚洲vs韩国一区三区二区| 黄色av一区| 国产一区白浆| 五月天久久网站| 国产综合色产| 视频一区国产视频| 视频一区中文字幕精品| 蜜臀a∨国产成人精品| 亚洲国产一区二区三区在线播放 | 男女性色大片免费观看一区二区| 亚洲欧洲一区| 亚洲黄色中文字幕| 国产精品精品国产一区二区| 精品入口麻豆88视频| 日本激情一区| 精品美女在线视频| 久久精品一本| 成人国产精品| 国产精品日韩久久久| 天堂成人国产精品一区| 快she精品国产999| 亚洲欧美日本国产| 国产欧美一区二区三区精品观看| 精品国产一区二区三区噜噜噜| 美女久久精品| 精品国产免费人成网站| 国产精品久久久久9999高清| 麻豆91精品视频| 激情久久久久久久| 亚洲综合国产| 亚洲精品亚洲人成在线观看| 日本精品在线播放| 1024精品久久久久久久久| 亚洲精品九九| 免费视频一区二区三区在线观看 | 综合激情五月婷婷| 日韩高清一级| 麻豆精品99| 亚洲自拍另类| 免费在线看一区| 国产女人18毛片水真多18精品| 国产精久久久| 久久久精品午夜少妇| 日韩精品久久久久久久电影99爱| 日韩在线卡一卡二| 国产精品欧美三级在线观看| 国产成人久久精品一区二区三区| 久久亚洲专区| 在线视频观看日韩| 国产午夜久久av| 韩国精品主播一区二区在线观看 | 日韩av片子| 先锋影音久久久| 日韩欧美精品| 国产精品theporn| 久久最新视频| 久久香蕉国产| 亚洲最新无码中文字幕久久 | 久久精品av| 精品一区二区三区中文字幕| 日本不卡在线视频| 91久久视频| 久久婷婷丁香| 欧美伊人久久| 蜜臀久久99精品久久久画质超高清| 日韩在线综合| 欧美a在线观看| 欧美亚洲tv| 婷婷亚洲精品| 综合激情网站| 亚洲免费精品| 99久久久国产精品美女| 亚洲免费婷婷| 日韩av影院| 亚洲国产福利| 国产精品试看| 91精品一区二区三区综合| 中文一区二区| 国产中文欧美日韩在线 | 日本午夜免费一区二区| 国产精品日本| 日韩不卡一区二区三区 | 国产欧美日韩一级| 亚洲综合日韩| 美国欧美日韩国产在线播放| 欧美久久精品一级c片|