Я пытаюсь загрузить файл на свой сервлет из веб-интерфейса. Я использую Apache Commons FileUpload, следуя учебному курсу и интегрируя его в свой сервлет. Как-то мне не удается загрузить файл.Почему мой файл не загружается в мой сервлет Java?
Вот моя форма на веб-странице:
<form class="well" action="GenTreeUploader" method="post" enctype="multipart/form-data">
<label>Choose your file:</label>
<center><input type="file" class="input-xlarge" name="wordfile"></center><br>
<center><span class="help-block">Note: after clicking "Upload file!" all of the data contained in the file will be uploaded to the database</span></center><br>
<center><input class="btn btn-primary" type="submit" value="Upload file!"></center>
<input type="text" name="tester" value="xoxoxo" />
<input type="hidden" name="action" value="startUpload" />
</form>
Тогда вот мой код часть сервлета, который должен обрабатывать загрузку файлов из запроса:
public void artiUpload(HttpServletRequest request, HttpServletResponse response, HtmlWriter writer) throws ServletException, IOException {
System.out.println("I'm in upload");
PrintWriter out = response.getWriter();
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// Create a factory for disk-based file items
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
factory.setSizeThreshold(maxMemSize);
factory.setRepository(new File(htmlPath.toString()));
System.out.println("File path: " + htmlPath.toString());
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Set overall request size constraint
upload.setSizeMax(maxFileSize);
System.out.println("Max file size: " + maxFileSize);
System.out.println("Max file size in memory: " + maxMemSize);
List items = null;
try {
// Parse the request
items = upload.parseRequest(request);
System.out.println("Items found: " + items.size());
out.write(writer.printCenter("File uploading done"));
} catch (FileUploadException ex) {
Logger.getLogger(GenTreeUploader.class.getName()).log(Level.SEVERE, null, ex);
out.write(writer.printCenter("File uploading failed"));
}
}
А вот сервер Tomcat я получаю из этого метода сервлетов:
I'm in upload
File path: D:\Dropbox\StudiesNew\NetbeansProjects\GenTreeUploader\build\web\WEB-INF\classes\Html
Max file size: 10485760
Max file size in memory: 2097152
Items found: 0
Ну, я также получаю некоторые параметры f введите запрос: action = request.getParameter (actionText);
Работает нормально с обычными параметрами, но файл не загружается. Я считаю, что после разбора списка должен быть один элемент в этом случае, он показывает 0 ...
Может ли кто-нибудь помочь? Благодарю.
Полный журнал это?
Using CATALINA_BASE: "C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base"
Using CATALINA_HOME: "C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22"
Using CATALINA_TMPDIR: "C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_03"
Using CLASSPATH: "C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\bin\tomcat-juli.jar"
Bir 05, 2012 2:45:06 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_03\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\MATLAB\R2010b\runtime\win64;C:\Program Files\MATLAB\R2010b\bin;.
Bir 05, 2012 2:45:07 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8084"]
Bir 05, 2012 2:45:07 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Bir 05, 2012 2:45:07 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 865 ms
Bir 05, 2012 2:45:07 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Bir 05, 2012 2:45:07 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.22
Bir 05, 2012 2:45:07 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor GenTreeUploader.xml from C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost
Bir 05, 2012 2:45:08 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml from C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost
Bir 05, 2012 2:45:08 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor mrweb.xml from C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost
Bir 05, 2012 2:45:08 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor ROOT.xml from C:\Users\Arturas\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost
Bir 05, 2012 2:45:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8084"]
Bir 05, 2012 2:45:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Bir 05, 2012 2:45:08 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1396 ms
I'm in upload
File path: D:\Dropbox\StudiesNew\NetbeansProjects\GenTreeUploader\build\web\WEB-INF\classes\Html
Max file size: 10485760
Max file size in memory: 2097152
Items found: 0
Вы уже отправили запрос перед вводом этого метода? Установили ли вы регистрацию на уровне отладки и проверили журналы? –
Ну да, вроде как я упомянул: –
// Пользовательский html writer HtmlWriter writer = new HtmlWriter(); PrintWriter out = response.getWriter(); // получить параметр действия, чтобы узнать, где находится пользователь в настоящее время. action = request.getParameter (actionText); System.out.println («Действие:» + действие); –