我正在尝试使用 webkitdirectory 和 java 后端来实现文件上传功能。
步骤1。使用 webkitdirectory 设计 HTML 表单
<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. 传递信息form
to 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();
}
}
我的代码没有给出任何编程错误,但它没有通过CheckPoint 2
,即它不会进入while
环形。我尝试查看各种帖子,例如:
上传时保留目录结构 http://sapphion.com/2012/06/12/keep-directory-structure-when-uploading/
如何使用JSP/Servlet上传文件到服务器? https://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet- 虽然这个问题与所讨论的问题最相似,This https://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet问题适用于选择文件夹中的多个文件,这里的问题是上传文件夹内不同子目录中的文件。
我想知道,这是否可以单独使用java servlets
不使用javascript
。我能够在一个文件夹中上传多个文件。但是,当我选择一个文件夹作为输入时,代码似乎不起作用,而是当我选择特定文件或文件子集时,代码才起作用。