public static  String readAndUpload(String serverpath,String imgid) {
if(serverpath==null){
serverpath = OLD_IMG_SERVER_URL;
}
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response = null;
try {
// 创建httpget
URL url = new URL(serverpath+imgid);
URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null);
HttpGet httpget = new HttpGet(uri);
System.out.println("executing request " + httpget.getURI());
// 执行get请求.
response = httpclient.execute(httpget);
// 获取响应实体
HttpEntity entity = response.getEntity();
System.out.println("--------------------------------------");
// 打印响应状态
System.out.println(response.getStatusLine());
if (entity != null) {
long len = entity.getContentLength();
// 打印响应内容长度
System.out.println("image content length: " + len);
System.out.println("------------------------------------");
//准备上传图片数据
byte[] buffer = null; InputStream fis=null;
if(len>=1000000){
System.err.println(imgid+"====Scale:"+1000000.0f/len);
Thumbnails.of(new URL(serverpath+imgid)).outputFormat("jpeg").scale(1)
// .scale(1000000.0f/len)
.toFile("temp.jpg");
fis = new FileInputStream("temp.jpg");
}else{
fis = entity.getContent();
}
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
EntityUtils.consume(entity); //开始上传
HttpPost httppost = new HttpPost(NEW_IMG_SERVER_URL); ByteArrayEntity byteArrayEntity = new ByteArrayEntity(buffer);
httppost.setEntity(byteArrayEntity);
httppost.addHeader("Content-Type", "jpeg"); System.out.println("executing request " + httppost.getRequestLine());
Header[] headers = httppost.getAllHeaders();
response = httpclient.execute(httppost); System.out.println("----------------Response-----------------------");
System.out.println(response.getStatusLine());
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String resp = EntityUtils.toString(resEntity);
System.out.println("Response content length: " + resEntity.getContentLength());
System.out.println("Response content : " + resp);
ImgInfo o = JsonUtil.fromJsonToObject(resp, ImgInfo.class);
if(o==null || o.getInfo()==null){
return null;
}
return o.getInfo().getMd5();
} EntityUtils.consume(resEntity);
}else{
return null;
} } catch (ClientProtocolException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
} catch (URISyntaxException e) {
e.printStackTrace();
return null;
} finally {
try {
if(response!=null){
response.close();
response = null;
}
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null; } public static String readFileAndUpload(File file) { CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response = null;
try {
//准备上传图片数据
byte[] buffer = null; InputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray(); //开始上传
HttpPost httppost = new HttpPost(NEW_IMG_SERVER_URL); ByteArrayEntity byteArrayEntity = new ByteArrayEntity(buffer);
httppost.setEntity(byteArrayEntity);
httppost.addHeader("Content-Type", "jpeg"); System.out.println("executing request " + httppost.getRequestLine());
Header[] headers = httppost.getAllHeaders();
response = httpclient.execute(httppost); System.out.println("----------------Response-----------------------");
System.out.println(response.getStatusLine());
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String resp = EntityUtils.toString(resEntity);
System.out.println("Response content length: " + resEntity.getContentLength());
System.out.println("Response content : " + resp);
ImgInfo o = JsonUtil.fromJsonToObject(resp, ImgInfo.class);
if(o==null || o.getInfo()==null){
return null;
}
return o.getInfo().getMd5();
} EntityUtils.consume(resEntity); } catch (ClientProtocolException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
try {
if(response!=null){
response.close();
response = null;
}
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null; }

bytearray和file的后端上传方式的更多相关文章

  1. Spring Boot + Vue 前后端分离,两种文件上传方式总结

    在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...

  2. Django文件上传(经典上传方式)

    经典文件上传方式 创建URL from django.contrib import admin from django.urls import path from django.conf.urls i ...

  3. upload三种上传方式(上)---Servlet---post---commons-fileupload.1.2.1.jar方式请求上传文件

    上传前进行的配置选项: 1.在下方的Servers中,右键你的tomcat--open,选中下面两个配置. 第一个:Serve modules without publishing 作用:tomcat ...

  4. Web的几种上传方式总结

    问题 文件上传在WEB开发中应用很广泛. 文件上传是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程. 以下总结了常见的文件(图片)上传的方式和要点处理. 表单上传 这是传 ...

  5. input type=file实现图片上传,预览以及图片删除

    背景 前两天在做一个PC网站的意见反馈,其中涉及到了图片上传功能,要求可以上传多张图片,并且支持图片上传预览及图片删除, 图片上传这一块以前没怎么搞过,而且一般也很少会碰到这样的需求,所以在做这个功能 ...

  6. django之创建第10个项目-图片上传方式1

    1.upload.HTMl <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang=& ...

  7. Springmvc file多附件上传 显示 删除操作

    之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于 ...

  8. 图片base64格式转为file文件类型上传方法

    日常使用文件上传方式,都是通过input type='file'的文件选择框进行文件上传.但是会通过其他交互方式等到图片的base64格式进行上传.具体情况如下示意: 在项目开发中,需要进行照片采集, ...

  9. [转载]ASP.NET Core文件上传与下载(多种上传方式)

    ASP.NET Core文件上传与下载(多种上传方式)   前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在 ...

随机推荐

  1. Serializer序列器

    定义Serializer 1. 定义方法 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializ ...

  2. .NET 与MVC的区别

    .NET MVC与三层架构 二者都是架构模式,并且也有一定的共存度,在实际开发中,严格区分意义不大. 基于最近涉及到这部分知识就在复习下,编程过程中,基础概念更重要,而不是技术. 1.三层架构:即UI ...

  3. [Uva623]500!(高精)

    Description 求N! \(N \leq 1000\) Sample Input 10 30 50 100 Sample Output 10! 3628800 30! 265252859812 ...

  4. MapReduce进行数据查询和实现推简单荐系统

    1  运行环境说明 1.1 硬软件环境 1.2 机器网络环境 2  书面作业1:计算员工相关 2.1 书面作业1内容 2.2  实现过程 2.2.1   准备测试数据 2.2.2   问题1:求各个部 ...

  5. CQRS之旅——旅程5(准备发布V1版本)

    旅程5:准备发布V1版本 添加功能和重构,为V1版本发布做准备. "大多数人在完成一件事之后,就像留声机的唱片一样,一遍又一遍地使用它,直到它破碎,忘记了过去是用来创造更多未来的东西.&qu ...

  6. poj2955:Brackets

    Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8716   Accepted: 4660 Descript ...

  7. 谋哥:App开发者的苦逼不值得怜悯!

    [谋哥每天一干货,第四十篇]        为什么取这个标题呢?因为昨天一些本来“支持”谋哥的人看到谋哥搞收费VIP群,觉得谋哥赚苦逼开发者的钱很不道德,且说谋哥我写的东西都不切实际,全部是一些思想性 ...

  8. bash shell命令与监测的那点事(三)

    bash shell命令与监测的那点事之df与du 前两篇介绍了bash shell的进程监控指令,但是有时候你需要知道在某个设备上还有多少磁盘空间.首先介绍df命令: df命令 df命令就是用来轻松 ...

  9. 运维自动化之puppet3分钟入门

    运维自动化之puppet3分钟入门 几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人 ...

  10. 【Python】locust框架接口性能测试(一)

    本人工作中主要对接口与web进行性能测试,而接口测试主要为http协议接口和webservice接口,本文主要对locust框架http接口测试先进行简单介绍. 1.测试需求 对某系统登录接口进行测试 ...