当前位置: 首页 > news >正文

iis做网站文件下载做暧暧暧昧网站

iis做网站文件下载,做暧暧暧昧网站,网站推荐货源,wordpress 头条插件大家好#xff0c;我是雄雄。 前言 最近阳了#xff0c;第二条杠红的发紫#xff0c;真难受啊#xff0c;但是吧#xff0c;博客上有个bug#xff0c;不解决感觉比阳了还难受。 话还是要从博客的图片显示不出来这里说起#xff0c;当时做的时候#xff0c;在发文章这… 大家好我是雄雄。 前言 最近阳了第二条杠红的发紫真难受啊但是吧博客上有个bug不解决感觉比阳了还难受。 话还是要从博客的图片显示不出来这里说起当时做的时候在发文章这里感觉没有封面的话文章会很孤单所以就设计了个封面这块儿。但是封面如果太邋遢也还不如没有。 所以我就从网上的一个接口里面随机取的一些精美图片本来好好的结果今天一看那个接口报错403了当时就想着这样做太依赖别人了什么东西都得掌控在自己手里不然出问题了难受的还是自己。 正好借这个机会就重新设计了下先从接口中取如果接口中的图片能看则用这个图片顺便将这个图片传至七牛云存储中否则就随机从七牛云存储中指定些图片展示出来这样就不会受制于人。 效果图 直接将图片传至七牛云中给我们返回该图片的地址。 代码实现 因为七牛云上传图片的时候传递的是MultipartFile类型所以我们需要将网络图片utl转换成流然后在转换成MultipartFile接着使用七牛云提供的方法上传即可。 下面我们先看看怎么将网络url转换成MultipartFile这个代码网上很多大家可以随便搜一个放上来就行我这边封装了个工具类FilesUtil package com.shiyi.util;import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import org.apache.http.entity.ContentType; import org.apache.pdfbox.io.IOUtils; import org.springframework.mock.web.MockMultipartFile; import org.springframework.web.multipart.MultipartFile;import java.io.*; import java.net.HttpURLConnection; import java.net.URL;/*** author: muxiongxiong* date: 2022年12月29日 15:35* 博客https://blog.csdn.net/qq_34137397* 个人站https://www.穆雄雄.com* 个人站https://www.muxiongxiong.cn* Description: 类的描述*/ public class FilesUtil {/*** 根据地址获得数据的输入流** param strUrl 网络连接地址* return url的输入流*/public static InputStream getInputStreamByUrl(String strUrl) {HttpURLConnection conn null;try {URL url new URL(strUrl);conn (HttpURLConnection) url.openConnection();conn.setRequestMethod(GET);conn.setConnectTimeout(20 * 1000);final ByteArrayOutputStream output new ByteArrayOutputStream();IOUtils.copy(conn.getInputStream(), output);return new ByteArrayInputStream(output.toByteArray());} catch (Exception e) {e.printStackTrace();} finally {try {if (conn ! null) {conn.disconnect();}} catch (Exception e) {e.printStackTrace();}}return null;}/*** 将网络地址转换成MultipartFile* param strUrl* return*/public static MultipartFile onlineAddressTransferFile(String strUrl){MultipartFile file null;try {String fileName strUrl.substring(strUrl.lastIndexOf(/) 1);InputStream stream getInputStreamByUrl(strUrl);if (!ObjectUtils.isEmpty(stream)) {file new MockMultipartFile(fileName, fileName, , stream);return file;}}catch (Exception exception){exception.printStackTrace();}return file;}} 在调用的时候我们这样调 /*** 手动上传网络图片*/GetMapping(value /uploadFm)public ResponseResult uploadFm(){MultipartFile multipartFile FilesUtil.onlineAddressTransferFile(https://img-community.csdnimg.cn/images/86f32eac875e42af9ed9e91b809dc7d8.png);return cloudOssService.upload(multipartFile);} 剩下的就是七牛云里面的方法了这边一起放上来吧 CloudOssService接口代码 package com.shiyi.service;import com.shiyi.common.ResponseResult; import org.springframework.web.multipart.MultipartFile;public interface CloudOssService {/*** 上传* param file 文件* return*/ResponseResult upload(MultipartFile file);/*** 批量删除文件* param key 文件名* return*/ResponseResult delBatchFile(String ...key); } CloudOssServiceImpl实现类主要是实现CloudOssService接口的 package com.shiyi.service.impl;import com.shiyi.common.ResponseResult;import com.shiyi.enums.FileUploadModelEnum; import com.shiyi.service.CloudOssService; import com.shiyi.service.SystemConfigService; import com.shiyi.strategy.context.FileUploadStrategyContext; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import java.util.Objects;Service RequiredArgsConstructor public class CloudOssServiceImpl implements CloudOssService {private final SystemConfigService systemConfigService;private final FileUploadStrategyContext fileUploadStrategyContext;private String strategy;/*** 上传文件* param file* return*/Overridepublic ResponseResult upload(MultipartFile file) {if (file.getSize() 1024 * 1024 * 10) {return ResponseResult.error(文件大小不能大于10M);}//获取文件后缀String suffix Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf(.) 1);if (!jpg,jpeg,gif,png.toUpperCase().contains(suffix.toUpperCase())) {return ResponseResult.error(请选择jpg,jpeg,gif,png格式的图片);}getFileUploadWay();String key fileUploadStrategyContext.executeFileUploadStrategy(strategy, file, suffix);return ResponseResult.success(key);}/*** 删除文件* param key* return*/Overridepublic ResponseResult delBatchFile(String ...key) {getFileUploadWay();Boolean isSuccess fileUploadStrategyContext.executeDeleteFileStrategy(strategy, key);if (!isSuccess) {return ResponseResult.error(删除文件失败);}return ResponseResult.success();}private void getFileUploadWay() {strategy FileUploadModelEnum.getStrategy(systemConfigService.getCustomizeOne().getFileUploadWay());} } 最后是文件上传策略上下文类 package com.shiyi.strategy.context;import com.shiyi.strategy.FileUploadStrategy; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import java.util.Map;/*** apiNote 文件上传策略上下文*/ Service RequiredArgsConstructor public class FileUploadStrategyContext {private final MapString, FileUploadStrategy fileUploadStrategyMap;/*** 执行文件上传策略** param file 文件对象* return {link String} 文件名*/public String executeFileUploadStrategy(String fileUploadMode, MultipartFile file,String suffix) {return fileUploadStrategyMap.get(fileUploadMode).fileUpload(file,suffix);}/*** 删除文件策略* param fileUploadMode* param key* return*/public Boolean executeDeleteFileStrategy(String fileUploadMode,String ...key) {return fileUploadStrategyMap.get(fileUploadMode).deleteFile(key);} } QiNiuUploadStrategyImpl实现类的代码 package com.shiyi.strategy.imp;import com.alibaba.fastjson.JSON; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.BatchStatus; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.storage.model.FileInfo; import com.qiniu.util.Auth; import com.shiyi.entity.SystemConfig; import com.shiyi.enums.QiNiuAreaEnum; import com.shiyi.service.SystemConfigService; import com.shiyi.strategy.FileUploadStrategy; import com.shiyi.util.UUIDUtils; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import javax.annotation.PostConstruct; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream;Service(qiNiuUploadStrategyImpl) RequiredArgsConstructor public class QiNiuUploadStrategyImpl implements FileUploadStrategy {private final Logger logger LoggerFactory.getLogger(QiNiuUploadStrategyImpl.class);private final SystemConfigService systemConfigService;private String qi_niu_accessKey;private String qi_niu_secretKey;private String qi_niu_bucket;private Region region;private String qi_niu_url;PostConstructprivate void init(){SystemConfig systemConfig systemConfigService.getCustomizeOne();qi_niu_accessKey systemConfig.getQiNiuAccessKey();qi_niu_secretKey systemConfig.getQiNiuSecretKey();qi_niu_bucket systemConfig.getQiNiuBucket();qi_niu_url systemConfig.getQiNiuPictureBaseUrl();region QiNiuAreaEnum.getRegion(systemConfig.getQiNiuArea());}public void list() {Configuration configuration new Configuration(region);Auth auth Auth.create(qi_niu_accessKey, qi_niu_secretKey);BucketManager bucketManager new BucketManager(auth,configuration);BucketManager.FileListIterator fileListIterator bucketManager.createFileListIterator(qi_niu_bucket, null, 1000, null);while (fileListIterator.hasNext()) {FileInfo[] next fileListIterator.next();for (FileInfo fileInfo : next) {logger.info(文件打印开始,文件名{},qi_niu_url fileInfo.key);logger.info(文件类别打印开始,类别{},fileInfo.mimeType);logger.info(文件大小打印开始,大小{},fileInfo.fsize);}}}/*** 七牛云文件上传* param file 文件* param suffix 后缀* return*/Overridepublic String fileUpload(MultipartFile file,String suffix) {String key null;//构造一个带指定 Region 对象的配置类Configuration cfg new Configuration(region);//...其他参数参考类注释UploadManager uploadManager new UploadManager(cfg);//...生成上传凭证然后准备上传Auth auth Auth.create(qi_niu_accessKey, qi_niu_secretKey);String upToken auth.uploadToken(qi_niu_bucket);InputStream inputStream null;try {inputStream file.getInputStream();//这里需要处理一下不能让每次上去都是个UUID的文件名Response response uploadManager.put(inputStream, blog/UUIDUtils.getUuid() . suffix, upToken,null,null);//解析上传成功的结果DefaultPutRet putRet JSON.parseObject(response.bodyString(),DefaultPutRet.class);key qi_niu_url putRet.key;} catch (QiniuException ex) {Response r ex.response;logger.error(QiniuException:{},r.toString());} catch (IOException e) {e.printStackTrace();}finally {if (inputStream ! null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}return key;}/*** 批量删除文件* return*/Overridepublic Boolean deleteFile(String ...keys) {//构造一个带指定 Region 对象的配置类Configuration cfg new Configuration(Region.region2());//...其他参数参考类注释Auth auth Auth.create(qi_niu_accessKey, qi_niu_secretKey);BucketManager bucketManager new BucketManager(auth, cfg);try {BucketManager.BatchOperations batchOperations new BucketManager.BatchOperations();batchOperations.addDeleteOp(qi_niu_bucket, keys);Response response bucketManager.batch(batchOperations);BatchStatus[] batchStatusList response.jsonToObject(BatchStatus[].class);for (int i 0; i keys.length; i) {BatchStatus status batchStatusList[i];String key keys[i];System.out.print(key \t);if (status.code 200) {System.out.println(delete success);} else {System.out.println(status.data.error);}}return true;} catch (QiniuException ex) {System.err.println(ex.response.toString());return false;}}} 然后我们从接口里面直接调用即可上传上去。
http://www.zqtcl.cn/news/993536/

相关文章:

  • 建设网站的语言wordpress主题自定义添加后台设置
  • 制造动漫网站开发目的四川酒店网站建设
  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻
  • 招聘信息网搜索引擎优化代理
  • 免费的企业网站cms纯文字logo在线制作
  • 深圳电器公司官网网站建设 网站优化
  • 大连 网站建设昆明建设网站哪家好
  • 网站首页设计及运行效果网站建设与管理任务分工
  • 自己建设论坛网站家用电脑搭建服务器
  • 做网站上海公司企业网站内页
  • 手机网站seo山东网站建设网
  • 溧阳 招网站开发wordpress 占内存
  • 网站seo 工具做网站建设公司排名
  • 丹阳网站建设企业建设网站管理制度
  • 怎样审请网站集成装修全屋定制
  • 好看响应式网站模板下载可以访问的国外网站
  • 做电脑网站宽度网站建立安全连接失败
  • 西安网站设计哪家公司好my12777域名查询
  • 西宁网站建设排名网站设计对网站建设有哪些意义?
  • 北京平台网站建设价位怎样做网站卖网站
  • 网站建设与维护试题a卷建设银行官方网站买五粮液酒