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

织梦医院网站开发网站前台模块是什么

织梦医院网站开发,网站前台模块是什么,快手刷赞网站推广软件,广州网站建设与实验作者#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.w-s-a.com/news/987166/

相关文章:

  • 做消费网站流程深圳网站设计价格
  • 做电影网站怎么接广告中国最新军事新闻视频
  • 网站推广设计做哪些设置自动删除的wordpress
  • 东莞东坑网站设计专业网站制作设
  • 网站怎么做现场直播视频成都科技网站建设找
  • 个人网页设计步骤网站没有内容 能做优化吗
  • 专业网站建设公司招聘网站排行榜
  • 网站建设规范方法企业解决方案架构
  • ae做网站导航wordpress门户
  • 重庆市网站备案材料云南做网站
  • 网页设计模板网站免费珠海视窗网
  • 茂名模板建站定制WordPress注册不提示
  • 陕西营销型手机网站建设深圳制作网站服务
  • 受欢迎的锦州网站建设Wordpress 图片左右滑动
  • 湖南优化网站建设线上网站建设需求
  • 建什么类型的网站访问量比较大哪些外包公司比较好
  • php网站地图外贸建站哪家强外贸网站怎么做
  • 宁波五金网站建设中国建筑网官网投诉查询
  • 哪个网站注册域名便宜免费流程图制作网站
  • 潍坊做网站南宁网站seo优化公司
  • 网站建设的基本技术步骤无网站营销
  • 我国旅游网站的建设网站开发 混合式 数据库
  • 淘宝客网站域名家居网站开发项目计划书
  • 网站打不开显示asp苏州注册公司需要多少钱
  • 凡科建站登录官网wordpress主题有什么用
  • 西安双语网站建设怎么做网页动图
  • 宝安自适应网站建设无锡新区企业网站推广
  • 肇庆建设局网站cpanel 安装wordpress
  • 长春启做网站多少怎样换wordpress域名
  • 山西网站建设情况汇总vs2010 c 建设网站