使用MutiPartFile进行上传图片到OSS服务器

一、什么是图片服务器

图片服务器是专门为图片读写操作优化的独立服务器,在当今项目的使用中,图片等静态资源成为不可或缺的载体,那么当我们访问量逐渐增大时,访问速度日趋下降时,我们此时就应该考虑从项目中抽取一部分功能。通常,如果网站存在大量图片读写操作,那么应该首先把图片服务分离出来,也就是建立独立的图片服务器。确保在访问的时候不会因为图片问题而奔溃,并且更加方便做扩容、容灾和数据迁移。

二、图片服务器的优势

1、分担 Web 服务器的 I/O 负载 - 将耗费资源的图片服务分离出来,提高服务器的性能和稳定性
2、能够专门对图片服务器进行优化 - 为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度
3、提高网站的可扩展性 - 通过增加图片服务器,提高图片吞吐能力

本篇文章主要简单实用MutiPartFile进行上传文件。
可以直接粘贴使用。

/**
*	bbyte:图片的字节流
*	type:需要保存的文件类型。
*/
public static Map<String,Object> UpIOFile(byte[] bbyte,String type){
			//获取oss的url
			String uploadUrl =URLConfig.getOSSFileURL();
			String end = "\r\n";
			String twoHyphens = "--";
			String boundary = "------------------952765431";
			try {
				URL url = new URL(uploadUrl);
				HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
				httpURLConnection.setDoInput(true);
				httpURLConnection.setDoOutput(true);
				httpURLConnection.setUseCaches(false);
				httpURLConnection.setRequestMethod("POST");
				httpURLConnection.setRequestProperty("Connection", "Keep-Alive");
				httpURLConnection.setRequestProperty("Charset", "UTF-8");
				httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
				DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream());
				dos.writeBytes(twoHyphens + boundary + end);
				dos.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"test."+type+"\"" + end);
				dos.writeBytes(end);
				dos.write(bbyte);
				dos.writeBytes(end);
				dos.writeBytes(twoHyphens + boundary + twoHyphens + end);
				dos.flush();
				// 读取服务器返回结果
				InputStream is = httpURLConnection.getInputStream();
				InputStreamReader isr = new InputStreamReader(is, "utf-8");
				BufferedReader br = new BufferedReader(isr);
				String result = br.readLine();
				is.close();
				Map<String,Object> resultMap = JsonUtil.jsonString2Map(result);
				return resultMap;
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;
		}

使用实例:

Map<String,Object> resMap = MutiPartFileUtil.UpIOFile(bbyte,"pdf");

因为文件服务器是现成的,所以这里没有介绍文件服务器的搭建,有时间会补上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈橙橙丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值