import sun.misc.base64Encoder; // 注意别导错包了
public void invokeAddCuApplyRepairBill(RepairRequest repairRequest) {
RepairOrder repairOrder = new RepairOrder();
List imageList = new ArrayList<>();
repairOrder.setCustomerId(repairRequest.getCustomerId());
repairOrder.setAdress(repairRequest.getUserAddress());
repairOrder.setCustomerMobile(repairRequest.getUserPhone());
repairOrder.setContent(repairRequest.getRepairRemark());
String[] repairImgs = repairRequest.getRepairImgs();
byte[] data = null;
base64Encoder encoder = new base64Encoder();
for (String img: repairImgs) {
RepairImage repairImage = new RepairImage();
String urlPath = img;
try {
// 统一资源
URL url = new URL(urlPath);
// 连接类的父类,抽象类
URLConnection urlConnection = url.openConnection();
// http的连接类
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
//设置超时
httpURLConnection.setConnectTimeout(1000 * 5);
//设置请求方式,默认是GET
httpURLConnection.setRequestMethod("GET");
// 设置字符编码
httpURLConnection.setRequestProperty("Charset", "UTF-8");
// 打开到此 URL引用的资源的通信链接(如果尚未建立这样的连接)。
httpURLConnection.connect();
// 建立链接从请求中获取数据
BufferedInputStream bin = new BufferedInputStream(httpURLConnection.getInputStream());
// 读取文件字节数组
data = new byte[bin.available()];
bin.read(data);
bin.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组base64编码
String base64Data = encoder.encode(data);
repairImage.setbase64Data(base64Data);
String fileName = urlPath.substring(urlPath.lastIndexOf("/")+1);
repairImage.setFileName(fileName);
String fileType = urlPath.substring(urlPath.lastIndexOf("."));
repairImage.setFileType(fileType);
imageList.add(repairImage);
}
repairOrder.setRepairImageList(imageList);
weidieService.addCuApplyRepairBill(repairOrder);
}