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

莆田 做网站的公司手机app下载免费安装

莆田 做网站的公司,手机app下载免费安装,微信公众号做头图的网站,网站建设玖金手指排名13作者#xff1a;fyupeng 技术专栏#xff1a;☞ https://github.com/fyupeng 项目地址#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 开发人员往往会经常需要通过浏览器下载文件、图片或者PDF或者缩略图等#xff0c;这时候我们可以根据… 作者fyupeng 技术专栏☞ https://github.com/fyupeng 项目地址☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 开发人员往往会经常需要通过浏览器下载文件、图片或者PDF或者缩略图等这时候我们可以根据自己的需求自定义设置安全性就可以由自己来把握。 一、介绍 难点主要在于把文件路径当成参数传给后端后端根据一定的规则处理将结果写入响应返回给浏览器。 优点 使用懒加载方式如果本地有就不从OSS获取本地没有先从OSS下载到本地以便频繁下载文件时降低OSS的出入流量。待补充 二、代码 /*** Auther: fyp* Date: 2024/7/26* Description: 文件预览处理器* Package: com.gwssi.common.web* Version: 1.0*/Controller public class FilePreviewController {//本地测试可改为自己的路径//private static final String FILE_DIRECTORY D:/upload/;private static final String FILE_DIRECTORY /data/hqzr/;ResponseBodyRequestMapping(value /file/{fileUrl}/**, method RequestMethod.GET)public void getFile(PathVariable String fileUrl, HttpServletRequest req, HttpServletResponse resp) throws IOException {String path req.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE).toString();String path2 req.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString();String args new AntPathMatcher().extractPathWithinPattern(path2, path);args args.replace(.do, );fileUrl fileUrl / args;File file new File(FILE_DIRECTORY fileUrl);byte[] bytes null;// 添加安全检查确保文件确实在预期的目录中if (!file.exists() || !file.isFile() || !file.getCanonicalPath().startsWith(new File(FILE_DIRECTORY).getCanonicalPath())) {// 处理非法访问例如返回404File parentDir file.getParentFile();if (!parentDir.exists()) {parentDir.mkdirs(); // 确保文件所在的目录存在}bytes OssUtil.downloadByBytes(FILE_DIRECTORY fileUrl);if (null ! bytes) {FileOutputStream fos new FileOutputStream(file);fos.write(bytes);fos.close();resp.reset(); // 非常重要} else {MapString, String map new HashMapString, String();map.put(code, -100);map.put(msg, 文件预览失败);ResponseUtil.returnFrontByJSON(map, resp);}}// 设置适当的响应头纯下载方式//resp.setContentType(application/octet-stream; charsetutf-8);//resp.setHeader(Content-Disposition, attachment;filename file.getName());// 直接预览打开resp.setContentType(image/png); // 设置返回的文件类型resp.addHeader(Content-Length, String.valueOf(file.length())); //文件大小// 使用ServletOutputStream将图片数据写入响应try (ServletOutputStream outputStream resp.getOutputStream();BufferedInputStream inputStream new BufferedInputStream(new FileInputStream(file))) {// 从文件服务器获取if (null ! bytes) {outputStream.write(bytes);} else {// 从本地获取byte[] buffer new byte[4096];int bytesRead -1;// 读取文件内容并写入响应while ((bytesRead inputStream.read(buffer)) ! -1) {outputStream.write(buffer, 0, bytesRead);}}// 刷新输出流确保所有数据都被发送outputStream.flush();}}private String getMimeType(File file) {// 这里可以根据文件扩展名返回相应的MIME类型// 这里只是一个简单的示例实际应用中可能需要更复杂的逻辑String filename file.getName().toLowerCase();if (filename.endsWith(.png)) {return MediaType.IMAGE_PNG_VALUE;} else if (filename.endsWith(.jpg) || filename.endsWith(.jpeg)) {return MediaType.IMAGE_JPEG_VALUE;}// 添加更多MIME类型判断...return MediaType.APPLICATION_OCTET_STREAM_VALUE; // 默认类型} } 三、总结 简洁、高效、实用
http://www.tj-hxxt.cn/news/143114.html

相关文章:

  • 呼和浩特做网站的地方网站换一个图片怎么做
  • 网站建设的点子织梦网站发稿说明
  • 网站建设课程体会平台设计与开发
  • 茶叶网站开发wordpress页脚计时
  • 开发中英文网站多少钱建立营销网络
  • 东莞企业网站seo初次创业开什么店合适
  • 江苏强荣建设有限公司网站滁州网站建设梦天堂
  • 多语言企业网站源码wordpress 赢利模式
  • 网站优化竞争对手分析公司建网站多
  • 苏中建设 官方网站做网站的流程视频
  • 网页设计与网站建设pdf百度认证营销推广师
  • 做网站字体要求微商网站
  • 如何做徽商网站wordpress theme 安装
  • 莱芜新站优化青浦网站建设推广
  • 网站后期维护费用多少查询网址域名ip地址
  • 石家庄市建设局质监站网站凡科网小程序
  • 黄石网站设计制作公司wordpress分类title
  • 网站设计的研究方法网页制作与网站开发感想
  • 国内网站开发公司俄罗斯网站后缀
  • 外贸网站contact百度账号购买网站
  • 怎么给网站添加代码抢先注册网站域名卖掉
  • php网站 上传如何做优品快报下的子网站
  • 广西城乡建设厅网站首网站建设指数是什么意思
  • 四川省建设工程招投标网站跨境电商最好的平台
  • 男女做污的事情网站视频教育直播网站建设
  • 公司网站建设技术方案做公司网站的时间
  • 如何建设局域网内部网站数字营销策划方案
  • app营销网站模板石家庄建站模板
  • 广州番禺百度关键词网站排名优化软件
  • 做网站用什么ui美观wordpress 缓存神器