2017-02-07 1 views
1

私はjqueryプラグインjquery.filerを使用しています。私は自分のウェブサイトの例でアップロードファイルを試してみます。http://filer.grandesign.md/これは私にこのような価値をもたらします。jQuery/PHP:アップロードファイル情報を正しく返す方法

{ 
"files": [ 
    "..\/uploads\/dK079QrL2g.docx" 
], 
"metas": [ 
    { 
     "date": "Tue, 07 Feb 2017 06:12:40 +0000", 
     "extension": "docx", 
     "file": "..\/uploads\/dK079QrL2g.docx", 
     "name": "dK079QrL2g.docx", 
     "old_name": "Cover letter - Copy.docx", 
     "replaced": false, 
     "size": 16720, 
     "size2": "16.33 KB", 
     "type": [ 
      "application", 
      "vnd.openxmlformats-officedocument.wordprocessingml.document" 
     ] 
    } 
] 
} 

しかし、私が実装した後、私のウェブサイトに出力された出力は同じではないようです。これと上記の違いは何ですか?

Array 
(
[files] => Array 
    (
     [0] => uploads/iD2eBCwStA.docx 
    ) 

[metas] => Array 
    (
     [0] => Array 
      (
       [date] => Tue, 07 Feb 2017 07:57:03 +0100 
       [extension] => docx 
       [file] => uploads/iD2eBCwStA.docx 
       [name] => iD2eBCwStA.docx 
       [old_name] => Cover letter - Copy.docx 
       [replaced] => 
       [size] => 16720 
       [size2] => 16.33 KB 
       [type] => Array 
        (
         [0] => application 
         [1] => vnd.openxmlformats-officedocument.wordprocessingml.document 
        ) 
      ) 
    ) 
) 

はここに私のJS

//filter uploader 
$('#files').filer({ 
    showThumbs: true, 
    maxSize : 25, 
    fileMaxSize : 25, 
    addMore: true, 
    allowDuplicates: false, 
    extension : ["png", "gif"], 
    uploadFile: { 
      url: "ajax/upload.php", 
      data: {}, 
      type: 'POST', 
      enctype: 'multipart/form-data', 
      beforeSend: function(){}, 
      success: function(data, el){ 
       var parent = el.find(".jFiler-jProgressBar").parent(); 
       el.find(".jFiler-jProgressBar").fadeOut("slow", function(){ 
        $("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Success</div>").hide().appendTo(parent).fadeIn("slow"); 
       }); 

       console.log(data); 
      }, 
      error: function(el){ 
       var parent = el.find(".jFiler-jProgressBar").parent(); 
       el.find(".jFiler-jProgressBar").fadeOut("slow", function(){ 
        $("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Error</div>").hide().appendTo(parent).fadeIn("slow"); 
       }); 
      }, 
      statusCode: null, 
      onProgress: null, 
      onComplete: null 
     } 
}); 

答えて

0

最初の結果はJSON出力であり、他の一つは、応答のarray戻ります。

JSONを達成するためには、あなたが、これはそれがされた後、あなたが見ている値は、サーバーからもらったJSONで

0

に役立ちますあなたのJSに

dataType: JSON

希望を指定する必要がつながりますJavaScriptオブジェクトに変換されます(そして、表示のために文字列に変換されます)。 JSONに変換して表示したい場合は、console.log(JSON.stringify(data));を使用できます。

これは、データをJavaScriptオブジェクトとして扱うほうがはるかに簡単だからです。たとえば、値data.metas.sizeを使用して、アップロードされたファイルのサイズに関する計算を実行できます(試してください:console.log(data.metas.size2 + '(' + data.metas.size + ' bytes)');)。 JSON表現ではこれを行うことはできません。単なる文字列です。

関連する問題