<%@ page info="Random Image Show"
pageEncoding="UTF-8" contentType="image/jpg"
autoFlush="true" buffer="16kb" session="false" import="java.io.FileInputStream"
%><%
String[] imgpaths = {
"D:/images/testimg1.jpg",
"D:/images/testimg2.jpg",
"D:/images/testimg3.jpg"
};
ServletOutputStream sos = response.getOutputStream();
FileInputStream fis = new FileInputStream(imgpaths[(int) (Math.random() * imgpaths.length)]);
byte[] buf = new byte[100]; //缓冲区大小
int len = 0;
while ((len = fis.read(buf)) != -1) {
sos.write(buf, 0, len);
}
sos.flush();
sos.close();
fis.close();
%>
注意:在与out混用时会出错,因此在用完getOutputStream之后要使
out.clear();
out = pageContext.pushBody();
下面一个例子
文件代码如下:
OutputStream o=response.getOutputStream();
//输出文件用的字节数组,每次发送500个字节到输出流
byte b[]=new byte[500];
//下载的文件
File fileLoad=new File("f:/2000","book.zip");
//客户使用的保存文件的对话框
response.setHeader("Content-disposition","attachment;filename="+"book.zip");
//通知客户文件的MOME类型
response.setContentType("application/x-tar");
//通知客户文件的长度
long fileLength=fileLoad.length();
String length=String.valueOf(fileLength);
response.setHeader("Content_Length",length);
out.clear();
out = pageContext.pushBody();
//读取文件book.zip,并发送给客户下载
FileInputStream in=new FileInputStream(fileLoad);
int n=0;
while((n=in.read(b))!=-1)
{
o.write(b,0,n);
}
分享到:
相关推荐
1. 图片数据的二进制化:在Java中,图片通常以字节流的形式进行处理。使用`FileInputStream`读取图片文件,将其转化为字节数组,这一步是将图片内容转换为可存储的数据格式。 2. 数据库存储:图片数据可以存储在...
在本例中,创建了一个名为`images`的表,包含`name`(图片名称)、`changdu`(长度,可能代表图片尺寸或字节长度)和`content`(内容,即图片的二进制数据)三列。`content`列使用`longblob`类型,可以存储大容量的...
因为图片数据是二进制的,所以通常我们会将其存储在数据库中的BLOB(Binary Large Object)类型字段中。 ```jsp PreparedStatement pstmt = conn.prepareStatement("INSERT INTO image (id, content, imageblob) ...
- 使用JSP页面展示图片,可以使用`<img>`标签,其`src`属性指向一个Servlet,Servlet负责从数据库中获取图片数据并输出到响应流中。 8. **安全考虑**: - 防止文件上传攻击,例如拒绝上传非图片文件或恶意脚本。 ...
**返回响应**: 最后,将处理后的图片以二进制流的形式返回给客户端,可以使用HTTP响应的`setContentType("image/jpeg")`或`setContentType("image/png")`设置合适的MIME类型,并用`getOutputStream()`方法获取输出流...
2. 图片转换:将BLOB数据转换回二进制流,然后可以将其设置为HTTP响应的输出流,以下载或在网页上显示图片。 四、Web应用集成 1. JSP/Servlet:在Java Web应用中,Servlet通常用来处理图片的读取和写入,JSP则用于...
可以使用`<img>`标签,将二维码的Base64编码作为`src`属性值,或者将二维码写入到响应流中直接输出。 6. **用户输入处理**:在JSP页面上,可以设置一个表单让用户输入要生成的字符串,然后通过请求参数获取这个字符...
JSP可以使用`response.getOutputStream()`来直接输出二进制流。 4. **用户输入验证**:当用户提交表单时,服务器会检查用户输入的验证码是否与session中保存的原始验证码一致。如果一致,验证通过;否则,提示用户...
在Java服务器页面(JSP)中,下载文件是一项常见的任务,尤其在Web应用程序中,用户可能需要下载诸如文档、图片或其他资源。`download.jsp`文件很可能是实现这一功能的一个页面。下面将详细介绍如何使用JSP来实现...
在Oracle数据库中,可以使用SQL语句创建一个名为`test_img`的表,包含三个字段:`id`用于唯一标识图片,`name`存储图片名称,`pic`则用来存储图片的二进制数据。创建表的SQL语句如下: ```sql CREATE TABLE test_...
在这个“一个jsp上传文件、下载文件的代码”示例中,我们主要探讨的是如何在MyEclipse开发环境中利用JSP实现文件的上传和下载功能。 文件上传是Web应用中常见的功能,常用于让用户提交图片、文档等数据。在JSP中,...
5. **照片输入输出(Blob)**:Blob(Binary Large Object)用于存储二进制数据,如照片。在JSP中,可以使用PreparedStatement将照片上传至数据库,并通过ResultSet读取回显。同时,需要考虑图片的压缩、尺寸调整和...
在本章中,我们将深入探讨JSP中的文件操作,这些操作是通过Java的输入/输出流来实现的。文件操作是任何应用程序中的重要组成部分,它允许我们存储和检索数据。在JSP中,我们通常使用Java的I/O流类来处理文件的读取、...
最后,`base64编码`是将二进制数据转换为可打印字符的一种方式,常用于在网络上传输图像数据。在生成PNG图片后,可以将其转化为Base64字符串,嵌入到HTML的`data:` URL中,实现内联显示或发送给服务器。 综上所述,...
用户通过浏览器选择图片后,这些图片将以二进制数据的形式发送到服务器。服务器接收到数据后,可以先将其暂存到临时目录,然后返回一个预览链接给客户端。客户端通过这个链接显示预览图片。 在Java中,可以使用...
程序片允许直接在JSP页面中编写Java代码,通过`! %>`, `<% %>`, `<%= %>`, `<%@ %>`, `<%-- --%>`标签来区分不同的代码类型。程序片用于执行业务逻辑,如查询数据库、处理用户输入等。 **2.4 表达式** 表达式用于...
- 在项目根目录下的`Resources`文件夹中,`FCExporter_IMG.jsp`文件用于数据库图片的插入操作。此文件中的数据库连接方式必须采用JDBC而非JNDI,确保图片数据正确存储。 ##### 5. Java类支持 建立一个包含`...
21. Servlet和JSP - 请求参数与Bean属性:在Servlet或JSP中,通过request参数名字与Bean属性名字相同,可以直接设置Bean的属性值。 22. 计算机硬件组成:运算器、控制器、存储器、输入设备和输出设备构成了计算机...