【发布时间】:2011-04-17 14:49:02
【问题描述】:
我需要使用 Servlet 将 MS Word 文档存储和检索到 MySQL 5.1 中。我有上传文件的代码,但我不知道我可以输入表格。我已将 BLOB 用于插入 .doc 文件的字段。
这是我上传文件的代码 sn-p:
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();
}
}
在这里,我使用了 Servlets 3.0 功能来上传文件... 我的表架构:
resources
- UserID [varchar(15)]
- Document [mediumblob]
谁能帮助我如何将文档存储到表中,虽然 BLOB 是一种表示二进制数据的类型,但我如何才能将其检索为 Word 文档 (*.doc)?
【问题讨论】:
-
也许您之前已经听说过这个问题,但是……您是否必须将整个文档存储在数据库中而不是常规文件中?为此使用 MySQL 可能会更慢,并且您可能会遇到非常大的文档的问题(例如,如果超过了 max_allowed_packet)。 dev.mysql.com/doc/refman/5.1/en/program-variables.html
标签: java mysql servlets file-upload