'按普通方式打开数据库,之后求得该文件字节大小,在网页中输出该文件MIME类型,再用binarywrite输出
'之前必须将以下语句放在一个页面中,而在另一个页面对之进行调用输出显示。
Set rs = Server.CreateObject("ADODB.recordset")
sql="select * from b_hn_sgbb_rtu where sgbh='02713700001' and xh='2'"
rs.open sql,cn,1,1
'以下两句是在网页中打开WORD文档
'tu_size=rs("tu").ActualSize
'Response.ContentType = rs("types")
'Response.BinaryWrite rs("tu").getChunk(tu_size)
'以下三句是将数据库中的流文件当作一个文件,可以打开也可以下载回来
Response.ContentType = "Application/octet-stream"
tu_size=rs("tu").ActualSize
Response.AddHeader "Content-Disposition", "attachmentfilename=" &rs("filename")
Response.BinaryWrite rs("tu").getChunk(tu_size)
rs.close
'常见文件的MIME类型
'GIF文件 "image/gif"
'BMP文件 "image/bmp"
'JPG文件 "image/jpeg"
'zip文件 "application/x-zip-compressed"
'DOC文件 "application/msword"
'文本文件 "text/plain"
'HTML文件 "text/html"
'一般文件 "application/octet-stream"
1.修改PHP配置文件,保证能够连接到数据库。2.修改数据库配置,授予192.168.1.253以访问权限。这里只需授予这个IP就行了。如果不授予,PHP将不能访问数据库;如果授予范围过广,将会给你的系统带来潜在的安全风险。
你没要读取的,我没写。用的MySQL数据库DROP TABLE IF EXISTS `t_song_file`
CREATE TABLE `t_song_file` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`file_name` varchar(50) DEFAULT NULL,
`file` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
package com.song.test
import java.io.File
import java.io.FileInputStream
import java.io.InputStream
import java.sql.Connection
import java.sql.PreparedStatement
import com.song.dao.DBUtil
public class InputStreamInDB {
public static void main(String[] args) throws Exception {
Connection conn=DBUtil.getConnection()
String sql="insert into t_song_file(file_name,file) values(?,?)"
PreparedStatement ps=conn.prepareStatement(sql)
ps.setString(1, "hello.zip")
ps.setBlob(2, getFileInputStream("C:/Users/songjunliang/Desktop/hello.zip"))
int tag=ps.executeUpdate()
if(1==tag)
{
System.out.println("success")
}
ps.close()
conn.close()
}
public static InputStream getFileInputStream(String filePath) throws Exception
{
File file=new File(filePath)
InputStream is=new FileInputStream(file)
return is
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)