Ich versuche, eine Datei-Upload-Funktionalität mit Webkitverzeichnis mit Java-Backend zu implementieren.Hochladen von Dateien in Ordner/Unterverzeichnisse mit WebkitDirectory und Java Servlet
Schritt1. Entwerfen Sie ein HTML-Formular mit webkitdirectory
<form action="DataUpload" method="post" enctype="multipart/form-data">
<input type="text" name="dbName" value="Database Name Here" id="dbName"/>
<input type="file" id="ctrl" webkitdirectory directory multiple/>
<input type="submit" />
</form>
Schritt 2. Passing Informationen von form
zu Servlet
public class DataUpload extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response){
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator fileIterator;
try {
fileIterator = upload.getItemIterator(request);
InputStream inputStream = null;
BufferedReader br = null;
System.out.println("CheckPoint 1");
while(fileIterator.hasNext()) {
System.out.println("CheckPoint 2");
FileItemStream item = fileIterator.next();
String inputFileName = FilenameUtils.getName(item.getName());
inputStream = item.openStream();
inputFileName = inputFileName.split("\\.")[0];
List<String[]> list = new ArrayList<String[]>();
// Getting File
br = new BufferedReader(new InputStreamReader(inputStream)); // Getting the object to read file
String line;
while((line = br.readLine())!= null){// While condition ends then end of file is reached.
list.add(line.split(","));
}
// Checking if File is Empty
if (list.size() == 0){
System.err.println("File Empty");
}else{
// TODO : Parameter Parser.
// DO JOB HERE
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Mein Code, geben keine Programmierfehler, aber es geht nicht durch die CheckPoint 2
, dh Es geht nicht in die while
Schleife. Ich habe versucht, in verschiedene Posten suchen, wie zum Beispiel:
Keep Directory Structure When Uploading
How to upload files to server using JSP/Servlet? - Während diese Frage in Frage maximale Ähnlichkeit mit Problem zeigt, arbeitet This Frage mehrere Dateien in einem Ordner für die Auswahl, wo das Problem hier Frage ist hochladen Dateien in verschiedenen Unterverzeichnissen in einem Ordner.
Ich frage mich, ob dies nur mit java servlets
ohne javascript
möglich war. Ich konnte mehrere Dateien in einem einzigen Ordner hochladen. Aber, Code scheint nicht zu funktionieren, wenn ich einen Ordner als Eingabe auswähle, stattdessen funktioniert es, wenn ich eine bestimmte Datei oder eine Teilmenge von Dateien auswähle.