java web项目中读取本地图片

10 篇文章 0 订阅
4 篇文章 0 订阅

在项目中,因为业务需要,用户上传的图片存放在服务器的D盘中,为了读取并显示到页面上,尝试了两种方法:

一  通过流读取

java代码:

@RequestMapping(value = "/seekExperts")  
    @ResponseBody  
	public String createFolw(HttpServletRequest request,  
            HttpServletResponse response, Model model) {  
        // response.setContentType("image/*"); 
	PageData pd = new PageData();
	pd = this.getPageData();
	//取路径
	String path = pd.getString("path");
        FileInputStream fis = null;  
        OutputStream os = null;  
        try {  
            fis = new FileInputStream(path);  
            os = response.getOutputStream();  
            int count = 0;  
            byte[] buffer = new byte[1024 * 8];  
            while ((count = fis.read(buffer)) != -1) {  
                os.write(buffer, 0, count);  
                os.flush();  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        try {  
            fis.close();  
            os.close();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return "ok";  
    }  

前台代码:

<img alt="image" id="myImage" style="height:250px;width:400px;" src="defectivemanage/seekExperts.do?path=${var.PATH }"/>   


这样能够实现,但是如果访问量很大,需要多次读取流,所以不建议。


二  通过配置虚拟目录读取

打开tomcat的conf文件夹,在server.xml中的<Host></Host>标签内加入

<Context path="/dataResourceImages" docBase="D:\a" crossContext="true" reloadable="false" debug="0"/>


path是虚拟路径,docBase为真实路径

jsp代码:

<img alt="image" id="myImage" style="height:250px;width:400px;" src="/dataResourceImages/GIF1.gif"/>

修改后重启,就可以看到图片啦


  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
你可以使用Java的IO流来读取本地图片文件,并将其写入HTTP响应。下面是一个简单的示例代码: ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ImageServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取图片文件路径 String imagePath = "path/to/your/image.jpg"; // 设置响应内容类型为图片 response.setContentType("image/jpeg"); // 读取图片文件 File imageFile = new File(imagePath); FileInputStream fis = new FileInputStream(imageFile); // 获取输出流 OutputStream out = response.getOutputStream(); // 写入响应 byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = fis.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } // 关闭流 fis.close(); out.close(); } } ``` 在上面的示例,首先需要指定要读取图片文件的路径。然后,通过设置`response.setContentType("image/jpeg")`将响应内容类型设置为图片。接下来,使用`FileInputStream`读取图片文件,并通过`response.getOutputStream()`获取输出流。最后,使用循环将读取的内容写入输出流,并关闭输入和输出流。 请注意,上述示例是基于Java Servlet的,适用于Web应用程序。如果你在其他环境使用Java,可能需要根据具体情况进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值