如何将磁盘上图像文件的内容转储到浏览器?
我尝试了这个,但图像被破坏了(浏览器中的图像符号已损坏)。
<%@ include file="config.jsp" %>
<%@ page import="java.io.*" %>
<%@ page contentType="image/png" %>
<%
String fn = request.getParameter("f");
String filename = uploads_folder + fn;
File file = new File(filename);
FileInputStream in = new FileInputStream(filename);
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
%>
答案 0 :(得分:3)
JSP是HTML / CSS / JS和其他基于 text 的内容的模板。它不是像图像那样的二进制数据的模板。从本质上讲,JSP是错误的工具。您应该使用servlet类。创建一个extends HttpServlet
的类,并完成与doGet()
方法中的JSP完全相同的工作(虽然它可以更加健壮和高效),最后将图像URL更改为servlet一个而不是JSP一个。
答案 1 :(得分:0)
有必要删除JSP标记之外的换行符,以免破坏图像。
<%@ include file="config.jsp" %><%@ page import="java.io.*" %><%@ page contentType="image/png" %><%
String fn = request.getParameter("f");
String filename = uploads_folder + fn;
File file = new File(filename);
FileInputStream in = new FileInputStream(filename);
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
%>
答案 2 :(得分:0)
要考虑两件事, 1)数据没有用空格破坏,使用'trimDirectiveWhitespaces'这个页面指令属性来修剪空格。 2)设置图像内容类型标题
谢谢, 拉梅什