该功能主要实现读取本地文件所在的路径在网页下显示(JavaWeb项目)
第一步
package com.action;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageAction extends HttpServlet {
private static final long serialVersionUID = -1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
//这个方法是读取项目根目录下的txt文件
public static String txt2String(File file){
StringBuilder result = new StringBuilder();
try{
BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
result.append(s);
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result.toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到image.tx的路径
String str =request.getSession().getServletContext().getRealPath("/")+"image.txt";
File file1 = new File(str);
//下面方法是实现读取本地图片在网页上显示
//读取本地图片输入流
FileInputStream inputStream = new FileInputStream(txt2String(file1));
int i = inputStream.available();
//byte数组用于存放图片字节数据
byte[] buff = new byte[i];
inputStream.read(buff);
//记得关闭输入流
inputStream.close();
//设置发送到客户端的响应内容类型
response.setContentType("image/*");
OutputStream out = response.getOutputStream();
out.write(buff);
//关闭响应输出流
out.close();
}
}
第二步
//web.xml中配置
<servlet>
<servlet-name>imageUrl</servlet-name>
<servlet-class>com.epaper.web.action.ImageAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imageUrl</servlet-name>
<url-pattern>/imgurl</url-pattern>
</servlet-mapping>
第三步
//在项目根目录添加image.txt文件文件中输入图片所在的地址(D:/image/123.jpg)
第四步
<img src="http://localhost:8088/imgurl" alt="" />