我需要使用Servlets将MS Word文档存储和检索到MySQL 5.1中。我有上传文件的代码,但是我不知道我可以输入表格。我已经使用BLOB来填充我要插入.doc文件的字段。使用MySQL存储和检索Word文档
这里是我的代码片段上传文件:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
// get access to file that is uploaded from client
Part p1 = request.getPart("file");
String type=p1.getContentType();
String name=p1.getName();
long size = p1.getSize();
InputStream is = p1.getInputStream();
//FileInputStream fis = is.
// read filename which is sent as a part
Part p2 = request.getPart("name");
Scanner s = new Scanner(p2.getInputStream());
String filename = s.nextLine(); // read filename from stream
// get filename to use on the server
String outputfile = this.getServletContext().getRealPath(filename); // get path on the server
FileOutputStream os = new FileOutputStream (outputfile);
// write bytes taken from uploaded file to target file
int ch = is.read();
while (ch != -1) {
os.write(ch);
ch = is.read();
}
os.close();
out.println("<h3>File : '" + name + "' Type : '" + type + "' "
+ "of Size : " + ((double) size/1024) + "KB uploaded successfully!</h3>");
}
catch(Exception ex) {
out.println("Exception -->" + ex.getMessage());
}
finally {
out.close();
}
}
在这里,我使用的Servlet 3.0功能上传文件... 我的表模式:
resources
- UserID [varchar(15)]
- Document [mediumblob]
任何人都可以帮助我该如何将文档存储到表中,尽管BLOB是一种表示二进制数据的类型,我如何才能以Word文档(* .doc)的形式检索?
也许你以前已经听说过这个问题,但是......是否强制将整个文档存储在数据库中而不是常规文件中?为此使用MySQL可能会比较慢,并且您可能遇到非常大的文档问题(例如,如果超过max_allowed_packet)。 http://dev.mysql.com/doc/refman/5.1/en/program-variables.html – Archimedix 2010-09-27 06:21:49