christmaz 2023-04-20 09:51 采纳率: 20%
浏览 27

公司老系统,网页显示数据库图片总跳一段代码处理一下,把IO流存为文件,这有必要吗?

我在看公司的一个老网站系统源码。是SSM+JSP的。它打开一个网页后,都跳转到一段代码去下载图片。
难道不是直接在网页中写img标签的src属性就行了吗?只是里面有数据库读出的数,网页上写作变量名了。还总是跳到这段代码下。
有必要吗?
还是以前老技术的遗留?我记得我写Jsp也没有专门弄段代码处理图片啊。是更安全还是咋的。

public void fileOutputStream(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException {
        String filepath = req.getRequestURI();
        int index = filepath.indexOf(Global.USERFILES_BASE_URL);
        if(index >= 0) {
            filepath = filepath.substring(index + Global.USERFILES_BASE_URL.length());
        }
        try {
            filepath = UriUtils.decode(filepath, "UTF-8");
        } catch (UnsupportedEncodingException e1) {
            logger.error(String.format("解释文件路径失败,URL地址为%s", filepath), e1);
        }
        File file = new File(Global.getUserfilesBaseDir() + Global.USERFILES_BASE_URL + filepath);
        try {
            FileCopyUtils.copy(new FileInputStream(file), resp.getOutputStream());
            resp.setHeader("Content-Type", "application/octet-stream");
            return;
        } catch (FileNotFoundException e) {
            req.setAttribute("exception", new FileNotFoundException("请求的文件不存在"));
            req.getRequestDispatcher("/WEB-INF/views/error/404.jsp").forward(req, resp);
        }
    }

其中Global.USERFILES_BASE_URL是默认的文件目录。

  • 写回答

1条回答 默认 最新

  • 於黾 2023-04-20 10:05
    关注

    要看具体实现
    比如专门有个图片服务器来存图片,那么网站要显示图片之前就要去图片服务器的接口请求
    也有可能你们这个项目虽然根本没有图片服务器,但是之前的项目就是简单的copy了已有的代码而没做任何修改

    评论

报告相同问题?

问题事件

  • 创建了问题 4月20日

悬赏问题

  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了