JAva実装Base 64ビット符号化転送添付ファイル
32403 ワード
JAva実装Base 64ビット符号化転送添付ファイル
仕事で使うものは、メモしておいて、今度使うときは参考にしてください.
上コード(web-infoパス下、クラス名およびガイドパッケージ同下)
通過するpropertiesプロファイル動的構成により生成されたファイルパス(フォルダが自動的に作成されない機能も追加されました)
考慮すると、
https://www.cnblogs.com/lovling/p/6666994.html?utm_source=itdadao&utm_medium=referral
https://blog.csdn.net/shaohe18362202126/article/details/80717385
権利侵害があれば、削除に連絡してください.
仕事で使うものは、メモしておいて、今度使うときは参考にしてください.
上コード(web-infoパス下、クラス名およびガイドパッケージ同下)
// base64 json base64
public static void getBase64(String str) throws IOException{
String aaString = null;
try {
//
aaString = CreateNewFileUtil.class.getClassLoader().getResource("").toURI().getPath();
} catch (URISyntaxException e) {
e.printStackTrace();
}
String base64 = null;
String fileFormat = null;
if (StringUtils.hasText(str)) {
// str json , 。
JSONObject json_test = JSONObject.fromObject(str);
// json data , json
String baseJson = json_test.get("data").toString().replace("[", "").replace("]", "");
JSONObject json_test2 = JSONObject.fromObject(baseJson);
// base64
base64 = json_test2.get("file_path")+"";
//
fileFormat = json_test2.get("file_name")+"";
}
// web-info ,
String path = aaString.substring(1,aaString.length()-8)+fileFormat;
// , spring.jpeg
String filename = fileFormat;
// , spring
String name = filename.substring(0,filename.indexOf("."));
// , .jpeg
String suffix = filename.substring(filename.lastIndexOf("."));
//
File descFile = new File(path);
int i = 1;
//
while(descFile.exists()) {
String newFilename = name+"("+i+")"+suffix;
path = aaString.substring(1,aaString.length()-8)+newFilename;
//
descFile = new File(path);
if (!descFile.exists()) {
continue;
}
i++;
}
base64ToFile(base64,path);
}
// base64 file
public static boolean base64ToFile(String base64,String path) {
byte[] buffer;
try {
// base64Util 。
buffer = Base64.decode(base64);
// BASE64Decoder ( )。
buffer = new BASE64Decoder().decodeBuffer(base64);
//
FileOutputStream out = new FileOutputStream(path);
out.write(buffer);
out.close();
return true;
} catch (Exception e) {
throw new RuntimeException("base64
" + e.getMessage());
}
}
通過するpropertiesプロファイル動的構成により生成されたファイルパス(フォルダが自動的に作成されない機能も追加されました)
package com.risen.sjcj.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import net.sf.json.JSONObject;
import org.springframework.util.StringUtils;
import sun.misc.BASE64Decoder;
public class CreateNewFileUtil {
private String fileUrl;
public CreateNewFileUtil() {
//
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("com/risen/base/config/fileUrl.properties");
Properties p =new Properties();
try {
p.load(inputStream);
this.fileUrl=p.getProperty("dataSource.fileUrl");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// base64 json base64
public static void getBase64(String str) throws IOException{
CreateNewFileUtil createNewFileUtil = new CreateNewFileUtil();
String url = null;
//
url = createNewFileUtil.fileUrl;
String base64 = null;
String fileFormat = null;
if (StringUtils.hasText(str)) {
// str json , 。
JSONObject json_test = JSONObject.fromObject(str);
// json data , json
String baseJson = json_test.get("data").toString().replace("[", "").replace("]", "");
JSONObject json_test2 = JSONObject.fromObject(baseJson);
// base64
base64 = json_test2.get("file_path")+"";
//
fileFormat = json_test2.get("file_name")+"";
}
// web-info ,
String path = url+fileFormat;
// , spring.jpeg
String filename = fileFormat;
// , spring
String name = filename.substring(0,filename.indexOf("."));
// , .jpeg
String suffix = filename.substring(filename.lastIndexOf("."));
//
File descFile = new File(path);
//
File fileParent = descFile.getParentFile();
// ,
if(!fileParent.exists()){
fileParent.mkdirs();
}
int i = 1;
//
while(descFile.exists()) {
String newFilename = name+"("+i+")"+suffix;
// path = url.substring(1,url.length()-8)+newFilename;
path = url+newFilename;
//
descFile = new File(path);
if (!descFile.exists()) {
continue;
}
i++;
}
base64ToFile(base64,path);
}
// base64 file
public static boolean base64ToFile(String base64,String path) {
byte[] buffer;
try {
// base64Util 。
buffer = Base64.decode(base64);
// BASE64Decoder ( )。
buffer = new BASE64Decoder().decodeBuffer(base64);
//
FileOutputStream out = new FileOutputStream(path);
out.write(buffer);
out.close();
return true;
} catch (Exception e) {
throw new RuntimeException("base64
" + e.getMessage());
}
}
}
考慮すると、
https://www.cnblogs.com/lovling/p/6666994.html?utm_source=itdadao&utm_medium=referral
https://blog.csdn.net/shaohe18362202126/article/details/80717385
権利侵害があれば、削除に連絡してください.