我需要使用帶有ProgressListener的Apache fileupload上傳文件,但同時我還需要顯示上傳狀態的進度條。在Java/J2EE中的文件上傳幫助
實際需求是我只需要解析一個本地XML文件將xml解析爲適當的對象並將它們放入數據庫。我真的需要將文件上傳到服務器以解析它。由於我在遠程服務器上找不到像在我的本地m/c上運行良好的文件異常。
任何快速幫助,將不勝感激。
在此先感謝!
我需要使用帶有ProgressListener的Apache fileupload上傳文件,但同時我還需要顯示上傳狀態的進度條。在Java/J2EE中的文件上傳幫助
實際需求是我只需要解析一個本地XML文件將xml解析爲適當的對象並將它們放入數據庫。我真的需要將文件上傳到服務器以解析它。由於我在遠程服務器上找不到像在我的本地m/c上運行良好的文件異常。
任何快速幫助,將不勝感激。
在此先感謝!
如果你有訪問服務器端,我建議調試上傳過程。例外情況表明,您希望根據上傳的文件名在服務器上打開文件。在您的本地計算機上可以工作,因爲它在同一個文件系統上運行。在服務器端,在Apache的FileUpload接收二進制數據,這需要從請求數據流中提取:
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (ServletFileUpload.isMultipartContent(request)) {
FileItemFactory factory = new DiskFileItemFactory(Integer.MAX_VALUE, null);
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
for (FileItem item : items) {
byte[] data = item.get();
// do something with the binary data
}
} else {
System.err.println("Not a multipart/form-data");
}
}
,你也需要的形式是:
<form name='frm' method="POST" action='UploadServlet' id="frm" enctype="multipart/form-data">
從你的描述它聽起來像你的servlet正試圖從文件系統本身讀取文件,這取決於表單中提交的文件名。如果servlet在文件所在的不同計算機上運行,這不會起作用。
確保您的servlet從fileupload API獲取文件內容,而不是從本地文件系統獲取文件內容。