我们都知道在bbs、论坛或者其他各种网站都允许个人向网站提交附件信息,或者是一个压缩包或者是一个文件,那么这种附件传到服务器之后以什么形式存储呢?在这里介绍一种将文件的信息写入数据库中的方法。
众所周知,Oracle中的lob (Large Object)可以存储非常大的数据。这样就可以在不改变文件中内容格式的前提下通过将文件或其它任何对象序列化成字节输出流(OutputStream)后写入数据库,之后使用字节输入流(InputStream)将数据读出然后反序列化为原始文件或对象。操作时需要使用oracle的JDBC包,它扩展了sun的JDBC包中的Blob对象。
1.将文件的内容写入数据库中的Blob字段
提交页面的代码如下:
<form name="fileForm" method="post" action="/servlet/DocumentServlet">
<input type="file" name="file"/>
</form>
我们可以在Servlet中通过
String file = request.getParameter(request, "file");获得文件路径
File f = new File(file);之后可以调用方法将对象传进去
当然每个人的方法可能都不一样,但是可以通过这篇文章举一反三,一通百通
import oracle.jdbc.OracleResultSet;
import oracle.sql.BLOB;
public void insertDocument(File file) throws IOException {
Connection conn =