mysql里怎么存word文档,像可以存个链接,可以链接到word文档

mysql里怎么存word文档,像可以存个链接,可以链接到word文档,第1张

mysql表里面搞个longblob字段保存word

代码:

1)上传

try {

Class.forName("com.mysql.jdbc.Driver").newInstance()

String url ="jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=gbk"

Connection conn = DriverManager.getConnection(url)

Statement stmt = conn.createStatement()

stmt.execute("insert into test(myid) values (5)")

stmt.close()

PreparedStatement pstmt = null

String sql = ""

File file = new File("c:\\kick.jpg")

InputStream photoStream = new FileInputStream(file)

sql = " UPDATE test SET photo = ? WHERE myid = 5"

pstmt = conn.prepareStatement(sql)

pstmt.setBinaryStream(1, photoStream, (int)file.length())

pstmt.executeUpdate()

pstmt.close()

conn.close()

} catch (Exception e) {

e.printStackTrace()

}

2)下载:

PreparedStatement pst = ..... //省略获取Connection及查询的sql

ResultSet rs = pst.executeQuery()

InputStream is = rs.getBinaryStream(1)//1表示你的word字段在结果集中的索引号

FileOutputStream fos = new FileOutputStream("path")

byte [] buf = new byte[1024]

while(is.read(buf)!=-1){

fos.write(buf)

}

//close省略

大概思路,自己完善

对于msSQL,小格式文件可以转为二进制当成文本存储.

但word一般都不小,所以一般情况下都直接保存文件,然后在数据库中保存地址.对文件的 *** 作由程序进行.

即使oracle这一类有大文件类型的,其实也是通过流来存储文件,常用于图像文件,很少于用office类型的.

方法有两个:

1. 直接用php读取文件,然后以BLOB流的形式存入数据库,这种方法是不能查询文件内容的,只能把数据库当成一个容器来用。

2. 先将word文档转换成xml文档,word菜单里另存为xml就行,然后用php分析这个xml文件,把其中的内容存进数据库。好处word文档的内容可以通过数据库来查询,但是还原成原word文档不能保证100%的word格式无损失(word 2010之后的版本对这个问题有改进)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8492177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存