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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java上傳下載文件并實(shí)現(xiàn)加密解密

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

使用 Jersey 服務(wù)器實(shí)現(xiàn)上傳,使用 HTTP 請(qǐng)求實(shí)現(xiàn)下載

引入依賴

在 pom.xml 中添加 Jersey 相關(guān)依賴

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

創(chuàng)建工具類

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 生成臨時(shí)文件 * @param multipartFile * @param tempFilePath 臨時(shí)文件路徑 * @return File 臨時(shí)文件 */ 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(); } // 創(chuàng)建臨時(shí)文件 File tempFile = new File(tempFilePath + '' + UUID.randomUUID().toString().replaceAll('-', '') + suffix); try { if (!tempFile.exists()) {// 寫入臨時(shí)文件multipartFile.transferTo(tempFile); } } catch (IOException e) { e.printStackTrace(); } return tempFile; } /** * 上傳文件 * @param fileServerPath文件服務(wù)器地址 * @param folderPath 存放的文件夾路徑(比如存放在文件服務(wù)器的 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) {// 創(chuàng)建加密文件File cryptoFile = new File(uploadFile.getPath().substring(0, uploadFile.getPath().lastIndexOf('.')) + 'crypto' + uploadFile.getPath().substring(uploadFile.getPath().lastIndexOf('.')));// 執(zhí)行加密cryptoFile(uploadFile, cryptoFile);// 保存加密后的文件uploadFile = cryptoFile; } // 創(chuàng)建 Jersey 服務(wù)器 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 {// 創(chuàng)建解密文件File cryptoFile = new File(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getServletContext().getRealPath('/') + 'temp' + UUID.randomUUID().toString().replaceAll('-', '') + file.getName().substring(file.getName().lastIndexOf('.')));// 執(zhí)行解密cryptoFile(file, cryptoFile);// 刪除下載的原文件file.delete();// 保存解密后的文件file = cryptoFile; } catch (Exception e) {e.printStackTrace(); } } return file; } /** * 刪除文件服務(wù)器上的文件 * @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轉(zhuǎn)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; }}

測(cè)試上傳

/** * @param multipartFile 上傳文件 * @param isCrypto 是否加密文件 * @return */@Testpublic String upload(MultipartFile multipartFile, boolean isCrypto) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); // 生成臨時(shí)文件 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 '上傳失敗'; }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美中文字幕电影| 日韩不卡一区二区| 美女免费视频一区| 国产精品夜夜夜| 久久99精品久久久久久园产越南| 国产激情精品一区二区三区| 国产欧美一级| 国产精品一国产精品k频道56| 国产精品一区二区三区av| 国产精品日韩精品在线播放| 国产精品igao视频网网址不卡日韩| 国产精品视频一区二区三区综合| 国产黄色一区| 欧美精品二区| 成人国产精品一区二区免费麻豆| 久久久久久一区二区| 99精品视频在线| 一区二区视频欧美| 蜜桃av一区二区在线观看| 美国三级日本三级久久99 | 国产成人精品一区二区三区视频| 国产成人精选| 欧美~级网站不卡| 亚洲欧美日韩一区在线观看| 日韩极品在线观看| 国产精品草草| 91tv亚洲精品香蕉国产一区| 蜜臀av免费一区二区三区| 天海翼精品一区二区三区| 国产精品亚洲四区在线观看| 91一区二区| 怡红院精品视频在线观看极品| 亚洲九九精品| 老色鬼精品视频在线观看播放| 久久免费国产| 亚洲另类视频| 日韩av二区| 丝袜美腿亚洲一区二区图片| 国产精品一区二区三区www| 蜜臀久久精品| 亚洲一区二区成人| 久久99蜜桃| 国产亚洲欧洲| 国产伦一区二区三区| 日本欧美不卡| 天堂av一区| 国产白浆在线免费观看| 老鸭窝毛片一区二区三区| 国产欧美一区二区精品久久久 | 亚洲精品成人图区| 丝袜脚交一区二区| 欧美国产日本| 亚洲免费黄色| 国产极品嫩模在线观看91精品| 国产一区二区三区自拍| 国产亚洲电影| 五月精品视频| 精品国产亚洲一区二区三区在线| 亚洲深爱激情| 91一区二区| 日本va欧美va欧美va精品| 日本欧美不卡| 国产精品久av福利在线观看| 青青青免费在线视频| 日韩综合一区二区三区| 亚洲特色特黄| 成人国产精选| 青青在线精品| 国产亚洲一区在线| 日韩毛片视频| 国产精品亲子伦av一区二区三区| 蜜臀av免费一区二区三区| 麻豆一区在线| 最近国产精品视频| 亚洲伦乱视频| 狂野欧美性猛交xxxx| 亚洲精品在线a| 亚洲高清毛片| 国产精品宾馆| 日本vs亚洲vs韩国一区三区二区| 亚洲国内欧美| 久久精品国产99国产精品| 亚洲小说春色综合另类电影| 久久男女视频| 色婷婷色综合| 国产精品mv在线观看| 一区二区电影| 亚洲免费激情| 免费观看久久av| 日本在线啊啊| 久久在线91| 青草久久视频| 99国产精品99久久久久久粉嫩| 国产一区二区三区四区五区 | 精品黄色一级片| 日韩激情一区二区| 最新亚洲激情| 国产精品88久久久久久| 91精品韩国| 麻豆网站免费在线观看| 久久99蜜桃| 国产精品久久久久久久久久久久久久久 | 美腿丝袜亚洲三区| 四虎在线精品| 一二三区精品| 一区二区日韩免费看| 狠狠色狠狠色综合日日tαg| 精精国产xxxx视频在线播放| 国产成人精品亚洲线观看| 久久av中文| 欧美成人一二区| 国产精品美女久久久久久不卡| 最新国产精品久久久| 在线精品视频一区| 一区视频在线| 日韩一级欧洲| 久久高清免费观看| 免费在线视频一区| 免费观看在线综合| 亚洲人成高清| 日韩1区2区3区| 天堂久久av| 日韩欧美激情| 欧美一级网址| 国产精品亚洲欧美日韩一区在线 | 日韩高清中文字幕一区| 亚洲综合图色| 亚洲毛片网站| 日韩激情网站| 国产精品一区高清| 久久免费精品| 中文字幕高清在线播放| 91看片一区| 欧美肉体xxxx裸体137大胆| 香蕉久久99| 精品一区欧美| 国产视频一区在线观看一区免费| 午夜久久影院| 亚洲免费一区二区| 免费欧美在线视频| 91欧美极品| 免费看久久久| 麻豆精品蜜桃| 欧美精品一卡| 亚洲精品国模| 国产精品国产三级在线观看| 国产成人久久精品一区二区三区| 久久久久免费| 久久国产亚洲| 中文无码日韩欧| 国产精品综合色区在线观看| 国产成人免费精品| 亚洲精品极品少妇16p| av亚洲在线观看| 日本不卡一二三区黄网| 久久精品理论片| 欧美成人午夜| 亚洲ww精品| 国产精品亚洲二区| 中文字幕在线看片| 丝袜美腿一区二区三区| 国产精品白丝av嫩草影院| 国产日韩电影| 亚洲欧美久久| 国产激情欧美| 欧美日韩国产在线一区| 久久精品av麻豆的观看方式| 九九久久国产| 国产亚洲在线观看| 美女av一区| 午夜欧美理论片| 国产精品毛片视频| 999精品色在线播放| 久久国产精品久久w女人spa| 国产精品日本一区二区不卡视频 | 国产精品地址| 91成人网在线观看| 国产精品一级| 亚洲神马久久| 麻豆精品久久久| 在线综合亚洲| 精品欧美视频| 亚洲视频国产| 欧美国产偷国产精品三区| 日韩午夜av在线| 麻豆精品蜜桃视频网站| 老司机精品久久| 国产精品久久久久久久免费观看 | 久久婷婷激情| 日韩精品免费一区二区夜夜嗨 | 精品久久久网| 日韩精品一二三四| 黑森林国产精品av| 中文字幕日韩高清在线| 国产资源在线观看入口av| 免费不卡在线观看| 高清久久一区| 日本中文字幕视频一区| 欧美亚洲精品在线| 美腿丝袜在线亚洲一区|