项目需求中涉及到从七牛服务器上获取文件内容,并在邮件附件中展示以及能够支持预览和下载。

七牛服务器与大多数服务器相同,相信小伙伴们通过搜索引擎,都能了解到,大部分服务器获取文件内容的代码都是根据URL,获取资源内容的。

七牛当然也不例外。

故而,如果能拿到服务器上资源的URL,代码就能相对简单。如:

fileURL就是通过各种辗转获取到服务器上的资源路径;
ByteArrayOutputStream baos = URLUtils.readBaosByUrlPath(fileURL);MailService.MailAttachment attachment = new MailService.MailAttachment(fileName + suffix, baos);
this.sendEmail(to, subject, params, "e-comrise-postinfo", attachment);
public static class MailAttachment {private String file_name;private ByteArrayOutputStream byteArrayOutputStream;public MailAttachment(String file_name, ByteArrayOutputStream byteArrayOutputStream) {this.file_name = file_name;this.byteArrayOutputStream = byteArrayOutputStream;}public String getFile_name() {return file_name;}public ByteArrayResource getResource() {return new ByteArrayResource(byteArrayOutputStream.toByteArray());}public void closeResource() {try {byteArrayOutputStream.close();} catch (IOException ex) {ex.printStackTrace();}}}

那么,就有小伙伴好奇我这个工具类是怎么实现的了?废话不多说,直接上代码;

public static ByteArrayOutputStream readBaosByUrlPath(String urlPath) throws IOException {if (!isLegalUrl(urlPath)) return null;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();try(InputStream inputStream =new URL(urlPath).openStream()){IOUtils.copy(inputStream, byteArrayOutputStream);}return byteArrayOutputStream;}
public static Boolean isLegalUrl(String url) {Pattern pattern = Pattern.compile("[a-zA-z]+://[^\\s]*");
//        Pattern p = Pattern.compile("^(http|www|ftp|)?(://)?(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*((:\\d+)?)(/(\\w+(-\\w+)*))*(\\.?(\\w)*)(\\?)?(((\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*(\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*)*(\\w*)*)$",Pattern.CASE_INSENSITIVE );Matcher matcher = pattern.matcher(url);if (matcher.find()) {return isConnection(url);} else {return false;}}

引入的各种包:

import org.apache.commons.io.IOUtils;
import java.net.URL;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

如果有小伙伴想要深度了解这部分内容的话,请留言。知无不言言无不尽。前提:力所能及之下。

最后,祝愿开发路上的小伙伴们,永不脱发!

七牛服务器获取文件内容相关推荐

  1. python连接ftp服务器获取文件内容_python 访问ftp服务器文件

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  3. tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法

    1.config.php配置文件里配置七牛云密钥等 里面 secretKey accessKey domain bucket对应换成自己七牛云申请的, 步骤: (1)七牛云注册成功后-对象存储申请10 ...

  4. python批量上传文件到服务器_Python脚本06 —— 批量上传图片到七牛服务器

    #coding=utf-8 #上传到正式七牛服务器 import sys,os from qiniu import Auth from qiniu import BucketManager impor ...

  5. 七牛服务器入门教程_教程:使用无服务器,StepFunction和StackStorm构建社区的入门应用程序…...

    七牛服务器入门教程 by Dmitri Zimine 由Dmitri Zimine 使用无服务器,StepFunction和StackStorm Exchange构建社区注册应用 (Building ...

  6. php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...

    PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...

  7. php获取文件详细,PHP 获取文件内容

    验证function的时候发现在使用局域网网关的时候,页面响应时间过长,究其原因是从服务器读取文件失败导致.使用的是file_get_contents(),后来换了curl之后,问题便解决了. PHP ...

  8. php使用七牛直播,七牛上传文件,PHP版本

    自从知道七牛以来,就一直在用七牛做图片外链,但是每次需要到七牛官网登录,然后再上传图片.感觉很麻烦,最近想做一个自己的上传到七牛的平台,开始的想法是用C#写一个windows客户端,在用swift写一 ...

  9. php中files和FILRS,php获取文件内容最后一行示例

    php获取文件内容最后一行示例 复制代码 代码如下: $rs = 'README.md'; $fp = fopen($rs, 'r'); fseek($fp,-1,SEEK_END); $s = '' ...

  10. ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...

    当某些请求命中服务器(在移动应用程序上运行的服务器)时,我正在尝试将视频文件作为响应提供. 该视频文件可以存储在本地,也可以是外部存储的. 我开始尝试提供位于SMB服务器上的文件,所以我尝试使用此代码 ...

最新文章

  1. 2022-2028年中国汽车橡胶密封件行业市场深度分析及发展趋势分析报告
  2. springmvc 拦截器、国际化、验证
  3. java 泛型多重限制_Java泛型:有界类型参数中的多重继承
  4. 再见,备份——你好,真正的数据保护
  5. RAID技术超详细讲解
  6. Linux文件的三种时间属性
  7. 动态规划之0-1背包问题
  8. 2020 及以后的八大最显著技术趋势!
  9. css网页设计qq彩贝
  10. 利用计算机对调查问卷进行,关于电脑需求调查问卷
  11. Android Jetpack系列--8. DataStore使用详解
  12. ps中怎么把人物的腿给p长
  13. vb中的print方法
  14. 转:饭后九不要包你保健康
  15. 莫纳什计算机硕士课程挂科率,莫纳什真的是挂科重灾区?
  16. OpenSSL 使用openssl工具搭建私有CA
  17. NOI2016 优秀的拆分(图解)
  18. JAVA 求出100以内所有奇数,并对100以内所有奇数求和
  19. 编程思维训练4:地铁导航
  20. opencv学习(六)之掩膜版

热门文章

  1. 深度学习图片数量较少扩充数据集的方法
  2. 终于搞清楚了:SOLID设计原则出处
  3. 如果你想学数据科学,这 7 类资源千万不能错过...
  4. Apache Kafka-auto.offset.reset参数(earliest、latest、none)含义说明
  5. 土味情话恋爱话术微信小程序源码下载
  6. iOS学习之路-简单汤姆猫
  7. 【2022-New】Flutter doctor 检测报错,Android toolchain - develop for Android devices
  8. 在光伏并网柜保护监测领域安科瑞给出的解决方案
  9. MAL II,怀槐凝集素II(MAL II)
  10. CentOS 7搭建Yunzai-Bot原神机器人