dongrang9300 2019-07-17 04:13
浏览 247

如何上传文件夹中包含文件夹和文件的文件夹的所有内容?

How can I upload the contents of a folder including a files and folders inside of a folder?

I already try this function, but the problem is the FILES only is uploading, the folder inside of a folder is not uploading.

//html
<form method="post" id="user_form" enctype="multipart/form-data">
<div class="modal-content">
<div class="modal-header">
 <button type="button" class="close" data-dismiss="modal">&times;</button>
 <h4 class="modal-title">Add User</h4>
</div>
<div class="modal-body">
 <label>Enter Folder Name</label>
 <input type="text" name="text_firstname" id="text_firstname" class="form-control" />
 <br />
 <label>Select Folder</label>
 <input type="file" name="user_image[]" id="files" multiple directory="" webkitdirectory="" mozdirectory="" onchange="selectFolder(event)" />
 <span id="user_uploaded_image"></span>
</div>
<div class="modal-footer">
 <input type="hidden" name="user_id" id="user_id" />
 <input type="hidden" name="operation" id="operation" />
 <input type="submit" name="action" id="action" class="btn btn-success" value="Add" />
 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</form>

//script
<script type="text/javascript">
$(document).ready(function(){

 $(document).on('submit', '#user_form', function(event){
  event.preventDefault();
  var firstName = $('#text_firstname').val();
  if(firstName != '')
  {
   $.ajax({
    url:"insert.php",
    method:'POST',
    data:new FormData(this),
    contentType:false,
    processData:false,
    beforeSend:function(data)
    {
        $(".preload").show();
    },
    success:function(data)
    {
     // alert(data);
     $('#user_form')[0].reset();
     $(".preload").hide();
    }
   });
  }
  else
  {
   alert("Both Fields are Required");
  }
 });



});

function selectFolder(e) {
    var theFiles = e.target.files;
    var relativePath = theFiles[0].webkitRelativePath;
    var folder = relativePath.split("/");
    $("#text_firstname").val(folder[0]);
}

</script>

//insert.php ~ PHP CODE
<?php 

    if ($_POST['text_firstname'] != "") {
        $folder_name = "uploads" .'/'. $_POST['text_firstname'];
        if (!is_dir($folder_name))
            mkdir($folder_name);
        foreach ($_FILES['user_image']['name'] as $i => $name) {
            if (strlen($_FILES['user_image']['name'][$i]) > 1) {
                move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $folder_name.'/'.$name);
            }
        }

        echo "FOLDER UPLOADED";
    }
    else
    {
        echo "ERROR";
    }

 ?>

I expect that the all files and folders the I uploaded is must be uploaded including FOLDERS AND FILES. Please help me out of this problem. Thank you in advance!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
    • ¥15 画两个图 python或R