Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用拖放功能上载多个文件&;使用ajax拖放和浏览_Javascript_Php_Jquery_Ajax_File Upload - Fatal编程技术网

Javascript 如何使用拖放功能上载多个文件&;使用ajax拖放和浏览

Javascript 如何使用拖放功能上载多个文件&;使用ajax拖放和浏览,javascript,php,jquery,ajax,file-upload,Javascript,Php,Jquery,Ajax,File Upload,如何使用ajax通过拖放和浏览上传多个文件? 下面的代码是我目前所拥有的代码,非常有效,但只允许上传1个文件: 这是html: <div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false"> <div id="drag_upload_file"> <p>DROP FILE HERE</p> <p>o

如何使用ajax通过拖放和浏览上传多个文件? 下面的代码是我目前所拥有的代码,非常有效,但只允许上传1个文件:

这是html:

<div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false">
      <div id="drag_upload_file">
        <p>DROP FILE HERE</p>
        <p>or</p>
        <p><input class="browse" type="button" value="Browse" onclick="file_explorer();"></p>
        <input type="file" id="selectfile">
      </div>
</div>
以及用于上传的php:

$arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];

if (!(in_array($_FILES['file']['type'], $arr_file_types))) {
echo "false";
return;
}
move_uploaded_file($_FILES['file']['tmp_name'], '../uploads/'. $_FILES['file']['name']);

echo "File uploaded successfully.<br /><br />";   
$arr_文件类型=['image/png'、'image/gif'、'image/jpg'、'image/jpeg'];
if(!(在数组中($文件['file']['type'],$arr\u文件类型))){
呼应“假”;
返回;
}
移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
echo“文件上传成功。

”;
您似乎只获得了第一个上载“e.dataTransfer.files[0]”的文件。尝试更改为:

  function upload_file(e) {
    e.preventDefault();
    //here you can get all files
    for (var i=0; i< e.dataTransfer.files.length;i++){
      fileobj = e.dataTransfer.files[i];
      ajax_file_upload(fileobj);
    }
  }
函数上传_文件(e){
e、 预防默认值();
//在这里你可以得到所有的文件
对于(var i=0;i
对于浏览,我想同样的逻辑是有效的

function file_explorer() {
    document.getElementById('selectfile').click();
    document.getElementById('selectfile').onchange = function() {
      //here you can get all files
      for (var i=0; i< e.dataTransfer.files.length;i++){
          fileobj = document.getElementById('selectfile').files[i];
          ajax_file_upload(fileobj);
      }
    };
  }
函数文件\u explorer(){
document.getElementById('selectfile')。单击();
document.getElementById('selectfile')。onchange=function(){
//在这里你可以得到所有的文件
对于(var i=0;i

如果导航不起作用,您可以尝试使用event.target到达您的元素

这对拖放操作非常有效!。但在浏览时不起作用。那么我怎么才能做到呢?你可以用同样的逻辑,我会更新我的答案。不幸的是,我不能用这个代码上传任何文件了。顺便说一句,Darag&drop很好用
function file_explorer() {
    document.getElementById('selectfile').click();
    document.getElementById('selectfile').onchange = function() {
      //here you can get all files
      for (var i=0; i< e.dataTransfer.files.length;i++){
          fileobj = document.getElementById('selectfile').files[i];
          ajax_file_upload(fileobj);
      }
    };
  }