2017-11-29 18 views
1

名前とドロップゾーンのフィールドがあるフォームがあります。だから、もし私がuploadメインのフォルダにファイルをアップロードしたいのであれば、それは動作していますが、私は<input type="text" name="name" />によってフォルダ名を取得しているように、子フォルダにファイルをアップロードしたいです。Dropzone JSでファイルを子フォルダにアップロード

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); 
} 

はまだメインフォルダの代わりに、新しいフォルダにアップロードしています。

おかげ

答えて

0

AJAX呼び出しであなたの「データ」はJSONオブジェクトのようには見えません。それを変更してみてください:あなたがAJAX経由でJSONでデータを渡すことで、さらに例が必要な場合Passing data with jquery ajaxを参照してください

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

あなたはまた、JSON入力を読み取るために、あなたのPHPファイルに次のように欠落している可能性があり

あなたが

$fname = $_POST['name']; 

を変更する必要があり、その場合には

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

私のコード `名= inputValue`も変数を渡しているが、私は`(もし!空($ _ FILES))で変数を渡すようにしようとしていたときに、{} `それが機能していません。中

$fname = $result['name']; 
+0

同じ結果私は空白に反応しています。 –

+0

エラーが発生しますか?あなたのコードを正しく読んでいれば、$ dsはディレクトリ区切り文字であり、$ storeFolder = '../uploads/'.$fl_name.'/'の後にあなたのファイルパスに多くの/があるかもしれません。すでにそれを持っています。私が間違ってそれを読んでいるなら、$ dsは何ですか? – SteveB

関連する問題