我需要使用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