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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?