Javascript 在网站应用程序中创建选择工具,如OneDrive中的选择工具

Javascript 在网站应用程序中创建选择工具,如OneDrive中的选择工具,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我正在制作一个网络应用程序,比如oneDrive 现在我想添加这个选择功能,但我不知道从哪里开始或做什么 如果有人有一个扩展或演示,请告诉我,我一直在寻找2天,从来没有找到任何东西 以下是我想要的: 简单地把它放在一个表格中 <input type="file" multiple /> 用ctrl键选择多个文件并在服务器端处理请求只需将其放入表单中即可 <input type="file" multiple /> 用ctrl键选择多个文件并在服务器端处理请求或

我正在制作一个网络应用程序,比如oneDrive 现在我想添加这个选择功能,但我不知道从哪里开始或做什么

如果有人有一个扩展或演示,请告诉我,我一直在寻找2天,从来没有找到任何东西 以下是我想要的:


简单地把它放在一个表格中

<input type="file" multiple />


用ctrl键选择多个文件并在服务器端处理请求

只需将其放入表单中即可

<input type="file" multiple />


用ctrl键选择多个文件并在服务器端处理请求

或者,您可能想要比简单的选择工具更好的东西。例如,拖放区允许您拖放多个文件。把它放到你的网页上

<div id="drop_zone">Drop files here</div>
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    evt.stopPropagation();
    evt.preventDefault();

    var files = evt.dataTransfer.files; // FileList object.

    // files is a FileList of File objects. List some properties.
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
      output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                  f.size, ' bytes, last modified: ',
                  f.lastModifiedDate.toLocaleDateString(), '</li>');
    }
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  }

  function handleDragOver(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    evt.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy.
  }

  // Setup the dnd listeners.
  var dropZone = document.getElementById('drop_zone');
  dropZone.addEventListener('dragover', handleDragOver, false);
  dropZone.addEventListener('drop', handleFileSelect, false);
</script>
将文件放到这里
功能手柄文件选择(evt){
evt.stopPropagation();
evt.preventDefault();
var files=evt.dataTransfer.files;//文件列表对象。
//文件是文件对象的文件列表。请列出一些属性。
var输出=[];
for(var i=0,f;f=files[i];i++){
output.push(“
  • ”,escape(f.name),“(”,f.type | | |“n/a”,“)-”, f、 大小,'字节,上次修改:', f、 lastModifiedDate.toLocaleDateString(),“
  • ”; } document.getElementById('list').innerHTML='
      '+output.join('')+'
    '; } 功能手柄(evt){ evt.stopPropagation(); evt.preventDefault(); evt.dataTransfer.dropEffect='copy';//显式显示这是一个副本。 } //设置dnd侦听器。 var dropZone=document.getElementById('drop_zone'); dropZone.addEventListener('Dragver',handleDragOver,false); dropZone.addEventListener('drop',handleFileSelect,false);
    如果您想要:

    …绘制选择矩形并将所选项目放入数组中

    将此内容放入您的页面:

    <input type="file" id="files" name="files[]" multiple />
    
    function handleFileSelect(evt) {
        var files = evt.target.files; // FileList object - here your Array
    
        var output = [];
        for (var i = 0, f; f = files[i]; i++) {
            var fd = new FormData();
            fd.append('file', f); // - here your file
    
            $.ajax({ // - here you can for example send your file with AJAX one by one
                type: "POST",
                url: "your_example_url",
                data: fd, // -this is your one file from array
                async: false,
                cache: false,
                contentType: false,
                processData: false,
                success: function (data, textStatus, request) {
                }
            });
    
        }
    }
    document.getElementById('files').addEventListener('change', handleFileSelect, false);
    
    
    功能手柄文件选择(evt){
    var files=evt.target.files;//文件列表对象-这里是您的数组
    var输出=[];
    for(var i=0,f;f=files[i];i++){
    var fd=新FormData();
    fd.append('file',f);//-这里是您的文件
    $.ajax({//-这里您可以使用ajax逐个发送您的文件
    类型:“POST”,
    url:“您的示例url”,
    数据:fd,//-这是数组中的一个文件
    async:false,
    cache:false,
    contentType:false,
    processData:false,
    成功:功能(数据、文本状态、请求){
    }
    });
    }
    }
    document.getElementById('files').addEventListener('change',handleFileSelect,false);
    
    或者,也许你想要比简单的选择工具更好的东西。例如,拖放区允许您拖放多个文件。把它放到你的网页上

    <div id="drop_zone">Drop files here</div>
    <output id="list"></output>
    
    <script>
      function handleFileSelect(evt) {
        evt.stopPropagation();
        evt.preventDefault();
    
        var files = evt.dataTransfer.files; // FileList object.
    
        // files is a FileList of File objects. List some properties.
        var output = [];
        for (var i = 0, f; f = files[i]; i++) {
          output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                      f.size, ' bytes, last modified: ',
                      f.lastModifiedDate.toLocaleDateString(), '</li>');
        }
        document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
      }
    
      function handleDragOver(evt) {
        evt.stopPropagation();
        evt.preventDefault();
        evt.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy.
      }
    
      // Setup the dnd listeners.
      var dropZone = document.getElementById('drop_zone');
      dropZone.addEventListener('dragover', handleDragOver, false);
      dropZone.addEventListener('drop', handleFileSelect, false);
    </script>
    
    将文件放到这里
    功能手柄文件选择(evt){
    evt.stopPropagation();
    evt.preventDefault();
    var files=evt.dataTransfer.files;//文件列表对象。
    //文件是文件对象的文件列表。请列出一些属性。
    var输出=[];
    for(var i=0,f;f=files[i];i++){
    output.push(“
  • ”,escape(f.name),“(”,f.type | | |“n/a”,“)-”, f、 大小,'字节,上次修改:', f、 lastModifiedDate.toLocaleDateString(),“
  • ”; } document.getElementById('list').innerHTML='
      '+output.join('')+'
    '; } 功能手柄(evt){ evt.stopPropagation(); evt.preventDefault(); evt.dataTransfer.dropEffect='copy';//显式显示这是一个副本。 } //设置dnd侦听器。 var dropZone=document.getElementById('drop_zone'); dropZone.addEventListener('Dragver',handleDragOver,false); dropZone.addEventListener('drop',handleFileSelect,false);
    如果您想要:

    …绘制选择矩形并将所选项目放入数组中

    将此内容放入您的页面:

    <input type="file" id="files" name="files[]" multiple />
    
    function handleFileSelect(evt) {
        var files = evt.target.files; // FileList object - here your Array
    
        var output = [];
        for (var i = 0, f; f = files[i]; i++) {
            var fd = new FormData();
            fd.append('file', f); // - here your file
    
            $.ajax({ // - here you can for example send your file with AJAX one by one
                type: "POST",
                url: "your_example_url",
                data: fd, // -this is your one file from array
                async: false,
                cache: false,
                contentType: false,
                processData: false,
                success: function (data, textStatus, request) {
                }
            });
    
        }
    }
    document.getElementById('files').addEventListener('change', handleFileSelect, false);
    
    
    功能手柄文件选择(evt){
    var files=evt.target.files;//文件列表对象-这里是您的数组
    var输出=[];
    for(var i=0,f;f=files[i];i++){
    var fd=新FormData();
    fd.append('file',f);//-这里是您的文件
    $.ajax({//-这里您可以使用ajax逐个发送您的文件
    类型:“POST”,
    url:“您的示例url”,
    数据:fd,//-这是数组中的一个文件
    async:false,
    cache:false,
    contentType:false,
    processData:false,
    成功:功能(数据、文本状态、请求){
    }
    });
    }
    }
    document.getElementById('files').addEventListener('change',handleFileSelect,false);
    
    你在服务器端有什么?现在我写的都是前端没有开始写后端部分你在服务器端有什么?现在我写的都是前端没有开始写后端部分是的,我也需要这个。但我还需要一个选择工具,它可以选择所绘制的选择矩形中的所有项目,并将所选项目放入一个数组中。在这里你可以看到如何使用文件数组。是的,我也需要这个。但我还需要一个选择工具,它可以选择所绘制的选择矩形中的所有项目,并将所选项目放入一个数组中。在这里,您可以看到如何使用文件数组。