使用Dropzone JS将文件上载到子文件夹中

时间:2017-11-29 14:23:36

标签: javascript php dropzone.js

我有一个表单,其中有一个名称和dropzone字段。因此,如果我喜欢简单的上传文件在主upload文件夹中,那么它正在运行,但我想上传子文件夹中的文件,比如我通过<input type="text" name="name" />获取文件夹名称,并且上传文件应该去到新生成的文件夹。

HTML:

<input type="text" name="name" class="form-control fl_name" />
<div class="dropzone"></div>

JS:

// CREATE FOLDER FOR FILE UPLOADS
$('.name-alert').hide();
$('.fl_name').on('change', function() {
    var fl_name = 'name='+ $(this).val();
    var fl_url = $(this).closest('form').attr('action');
    $.ajax({
        type: 'POST',
        url: fl_url,
        data: fl_name,
        cache: false,
        success: function(result){
            if (result == '0') {
                $('.name-alert').slideDown();
                setTimeout(function() {
                    $('.name-alert').slideUp();
                }, 2000);
            }
        }
    });
});

// CREATE DROPZONE ENVIORMENT
var myDropzone = new Dropzone('div.dropzone', {
    url: "http://localhost/build/assets/php/customer-query.php", 
    addRemoveLinks: true,       
    init: function() {
        this.on('success', function( file, resp ){
           var fl_name = 'name='+ $('.fl_name').val();
           var fl_url = 'http://localhost/build/assets/php/customer-query.php';
           $.ajax({
                type: 'POST',
                url: fl_url,
                data: fl_name,
                cache: false,
                success: function(result){
                    console.log(result);
                }
            });
        });
      },
});

PHP:

// Create Folder On Input Field Change
$fname = $_POST['name'];
if (!file_exists('../uploads/'.$fname.'/')) {
    mkdir('../uploads/'.$fname.'/', 0777, true);
} else {
    echo '0';
}

// Upload Files
$fl_name = $_POST['name'];
$ds = DIRECTORY_SEPARATOR;
$storeFolder = '../uploads/'.$fl_name.'/';
if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];                   
    $targetPath = dirname( __FILE__ ) .$ds. $storeFolder .$ds; 
    $targetFile =  $targetPath. $_FILES['file']['name']; 
    move_uploaded_file($tempFile,$targetFile);
}
我的代码文件中的

仍在主文件夹而不是新文件夹中上传。

由于

1 个答案:

答案 0 :(得分:0)

您的&#34;数据&#34;在ajax调用中看起来不像json对象。尝试将其更改为:

$.ajax({
            type: 'POST',
            url: fl_url,
            data: {'name':fl_name},
            dataType: "json",
            cache: false,
            success: function(result){
                console.log(result);
            }
        });

如果您需要使用json通过ajax

传递数据的更多示例,请参阅Passing data with jquery ajax

您可能还缺少php文件中的以下内容来读取json输入:

$inputJSON = file_get_contents("php://input");
$result = json_decode($inputJSON,TRUE);

在这种情况下你需要改变

$fname = $_POST['name'];

$fname = $result['name'];