使用 webkitDirectory 和 Java Servlet 上传文件夹/子目录中的文件

2023-12-31

我正在尝试使用 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。我能够在一个文件夹中上传多个文件。但是,当我选择一个文件夹作为输入时,代码似乎不起作用,而是当我选择特定文件或文件子集时,代码才起作用。


HTML 文件格式

<form onsubmit="readFiles()">
    <input type="file" name="files" webkitdirectory directory multiple id="files">
    <input type="submit">
</form>

JavaScript 函数

function readFiles(){
    var files = document.getElementById("files").files;
    for (var file = 0 ; file < files.length; file++) {
        var reader = new FileReader();
        reader.onload = function(e){
            var object = new Object();
            object.content = e.target.content;
            var json_upload = "jsonObject=" + JSON.stringify(object);
            var xmlhttp = new XMLHttpRequest();   // new HttpRequest instance 
            xmlhttp.open("POST", "http://localhost:8080/readFileServlet");
            xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlhttp.send(json_upload);
        }
        reader.readAsBinaryString(files);
    }
}

Java函数:

JSONObject jObj = new JSONObject(request.getParameter("jsonObject"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 webkitDirectory 和 Java Servlet 上传文件夹/子目录中的文件 的相关文章

  • 方向改变后的javascript最大视口高度Android和iOS

    目标 查找设备的最大视口高度 包括设备的空间address bar这样我们就可以动态调整 min body 的大小并将内容向上推 问题 移动浏览器处理方向状态的方式不同 方向变化时更新 DOM 属性的方式也不同 使用 JavaScript
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • com.google.gwt.dev.jjs.InternalCompilerException:访问期间出现意外错误

    我在使用版本 2 6 0 编译 gwt 应用程序时遇到以下错误 最初我用 gwt 版本 2 6 1 的 maven 编译它 然后尝试通过版本 2 6 0 的 eclipse 编译它 跟版本兼容有关系吗 com google gwt dev
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • SwingWorker 在 Unsafe.park() 处挂起

    我有一个SwingWorker与后台服务器通信 然后更新JFrame 我正在调试我的应用程序并注意到即使在SwingWorker完成了它的工作 它的线程仍然存在 它挂在Unsafe park java lang Object 这是一个本机方
  • 更改 3 列显示的比例:表格/表格单元格

    我有这个简单的设置 container display table width 70 text align center div border 1px solid 336 column display table cell div clas
  • 指定自定义应用程序上下文

    我们正在将一些数据服务从使用 jersey spring 的 Jersey 1 x 迁移到使用 jersey spring3 的 Jersey 2 x 我们有一些继承自 JerseyTest 的测试类 其中一些类使用 web xml 文件中
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 元素在主体内找不到足够的空间 - JavaScript 样式

    相关信息 该页面包含两个元素 An
  • Hibernate3:自引用对象

    需要一些帮助来了解如何执行此操作 我将在文件系统上运行递归 查找 并且希望将信息保留在单个数据库表中 具有自引用的层次结构 这是我想要填充的数据库表结构 目录对象表 id int NOT NULL name varchar 255 NOT
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • Java可以进行进程监控吗?

    是否可以用Java编写一个在托盘中运行的应用程序 并且当启动某个应用程序时 它可以检测到它 我想对某些程序执行此操作 以了解我每周使用它们多长时间 我是 Java 新手 所以我不知道 Java 是否是最适合此操作的语言 或者它是否具有对操作
  • 我可以从同一个 jar 文件执行两个不同的类吗?

    我有一个项目 在一个包中我制作了服务器 在第二个包中我制作了客户端 它运行良好 我想创建一个 Jar 文件 是否可以使用同一个 jar 文件分别运行客户端和服务器 我使用了只有一个 main 的 jar 文件 当我运行 jar 文件时 它会
  • 警告:无法加载 sqljdbc_auth.dll 原因:java.library.path 中没有 sqljdbc_auth

    我正在使用 Ubuntu 12 05 并尝试连接到 Windows Server 2012 来获取数据库 我的数据库名称是 jobs 电脑的IP地址是192 160 1 33 托管在1433 但是当我尝试连接时出现以下错误 WARNING
  • 手机上的网页滚动条可以隐藏吗?

    我正在尝试在移动设备上隐藏滚动条 一切在桌面上看起来都很好 没有滚动条 但是当我检查某些 Android 设备 ipad 时 我仍然可以看到灰色 细小的拇指 可以从浏览器中隐藏预定义的滚动条 我的代码 在桌面上运行良好 body webki
  • Selenium Webdriver 中的 IF 语句

    我想知道是否有人可以帮助我解决我正在尝试解决的问题以及 Java 中 Webdriver 的 If 语句 当登录到我正在测试的应用程序时 可以在主页之前进入安全问题页面 如果是新用户等 我希望测试中的代码做的是 如果出现安全问题页面 请填写
  • 如何使用 JRE 部署 JavaFX 11 桌面应用程序

    我有一个 JavaFX JDK 8 桌面业务应用程序 它使用 Java Web Start 进行部署 用户安装了 Java 8 只需访问 URL 我的 AWS Linux 服务器上的公共 URL 即可下载 启动应用程序 使用 Web Sta
  • 使用 BASH 和 AWK 创建 HTML 表

    我在创建 html 表来显示文本文件中的统计信息时遇到问题 我确信有 100 种方法可以做得更好 但这里是 以下脚本中的注释显示了输出 bin bash function getapistats curl s http api exampl

随机推荐