javaバックエンドでwebkitdirectoryを使用してファイルアップロード機能を実装しようとしています。webkitDirectoryとJava Servletを使用してフォルダ/サブディレクトリにファイルをアップロードする
ステップ1。 form
からの情報を渡す
<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>
ステップ2. 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();
}
}
私のコードにwebkitdirectoryとHTMLフォームを設計することは、任意のプログラミングエラーを与えるものではありませんが、それはすなわちCheckPoint 2
、通過しませんループ内には入りません。ループはwhile
です。私は、次のような、様々なポストに探してみました:
Keep Directory Structure When Uploading
How to upload files to server using JSP/Servlet? - この質問は、問題の問題の最大の類似点を示しているが、This質問はここでの問題は、質問がアップロードすることですされているフォルダに複数のファイルを選択するために動作しますフォルダ内の異なるサブディレクトリにあるファイル
javascript
を使用せずにjava servlets
を単独で使用できるのではないかと疑問に思っていました。私は1つのフォルダの中に複数のファイルをアップロードすることができました。しかし、入力としてフォルダを選択すると、コードが機能しないように見えますが、特定のファイルまたはファイルのサブセットを選択すると機能します。