2016-04-18 29 views
0

現在のコードでは、ファイルをアップロードするときにファイル名を取得しています。アップロードした後、私はファイル名を爆発させ、私が得ている応答を以下に示します。私の問題は、どのようにjQueryでデータを取得し、htmlで追加できるかです。どのように応答データを追加できますか?

jQueryのアラート応答では、" Localization,dummy "がどのようにこれらの2つのデータを別々に追加できますか。

コンソール:レスポンス

{"success":true,"exploded_filename":["Localization","dummy"],"id":"2"} 

コンソール:JSON

success    true 
exploded_filename ["Localization", "dummy"] 
0     "Localization" 
1     "dummy" 
id     "2" 

jqueryのドロップゾーンで

Dropzone.options.myDropzone = { 
      // Prevents Dropzone from uploading dropped files immediately 
      autoProcessQueue: true, 
      parallelUploads: 20, 
      uploadMultiple: true, 
      maxFilesize: 10, 
      maxFiles: 20, 
      init: function() { 
       myDropzone = this; // closure 
       // You might want to show the submit button only when 
       // files are dropped here: 
       this.on("success", function(file, responseText) { 
        myDropzone.removeFile(file); 
        if(responseText.success == true){ 
         $(".createProcessEntriesFileUpload").show(); 
         $("#my-dropzone").hide(); 
         $("#filenameFormGroup").show(); 
         $(".createProcessEntriesMessage").hide(); 
         alert(responseText.exploded_filename); 
         $("#filename").append('<a class="btn btn-sm btn-default download" href="" data-file="">'+responseText.exploded_filename+'</a> <a href="" class="removeProcessEntryFile" style="color: #333; cursor: pointer;"><button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Add file detail</button></a><br>'); 

         /*setTimeout(function() { 
         location.href = '<?php echo url("/");?>/customers/list/process/<?php echo $id;?>/entries'; 
         }, 3000);*/ 
        }; 
       }); 
      } 
     }; 

コントローラーページ

public function storeFile(ProcessEntriesRequest $request, $id) 
    { 
     $files      = $request->file('file'); 
     foreach($files as $file){ 
      $orginalName   = $file->getClientOriginalName(); 
      $split_file   = explode('.', $orginalName); 
      $exploded_filename[] = $split_file[0]; 
      $extension    = $file->getClientOriginalExtension(); 
      $filename    = str_random(10); 
      Storage::disk('local')->makeDirectory($request->entryID, 0777); 
      Storage::disk('local')->put($request->entryID.'/'.$filename.'.'.$extension, File::get($file)); 
     } 

     return response()->json(['success' => true, 'exploded_filename' => $exploded_filename, 'id' => $id]); 
    } 
+0

'responseText.exploded_filename [0]' – rmondesilva

+0

@rmondesilva "responseText.exploded_filename [0]"を使用している場合、結果は "L"になります。応答は "Localization、pdf"です。 – Rahul

答えて

0

使用join

console.log(responseText.exploded_filename.join(',')); 
$("#filename").append('<a class="btn btn-sm btn-default download" href="" data-file="">'+responseText.exploded_filename.join('.')+'</a> <a href="" class="removeProcessEntryFile" style="color: #333; cursor: pointer;"><button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Add file detail</button></a><br>'); 

または Madalinが正しいとループ

var totalfiles = '<ul>'; 
$.each(responseText.exploded_filename,function(i,v){ 
    totalfiles+='<li><a class="btn btn-sm btn-default download" href="" data-file="">'+v+'</a></li>'; 
}); 
totalfiles+='</ul>' 

$("#filename").append(totalfiles+'<a href="" class="removeProcessEntryFile" style="color: #333; cursor: pointer;"><button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Add file detail</button></a><br>'); 
+0

私は得られなかった。説明していただけますか? – Rahul

+0

@Rahulあなたは何を得ていませんでしたか? – madalinivascu

+0

ローカリゼーションとpdfは2つのファイル名です。私は私の質問にpdfの別のファイル名を配置します。 – Rahul

0

を使用して、あなたはjoinメソッドを使用する必要があります。アレイがdata = ['Localization', 'pdf']の場合、data.join('.')'Localization.pdf'を返します。 See the doc here

+0

pdfはファイル名です。それは私の質問を更新した拡張機能ではありません – Rahul

関連する問題