2016-11-15 9 views
0

私はこのファイルを1つのファイルで完璧に動作しますが、複数のファイルをアップロードするとjsonでエラーが発生します。私は1つのファイルを使用していた場合mulipleファイルのjson出力

$response = array('file' => ''.$file.'', 'date' => ''.date("d:m:y").'', 'save' => ''.$saving.'%'); 

echo json_encode($response); 

は、JSON出力は

{"file":"http:\/\/xyy.com\/3\/4\/23968281479202046440249.png","date":"15:11:16","save" 
:"<br>Original Size:8.3 Kb, &nbsp;&nbsp;&nbsp; Compressed Size:2.9Kb, &nbsp;&nbsp;&nbsp;Saving:65%"} 

有効ですが、私は2つの以上のファイルを使用していた場合、JSON出力は無効であり、エラーが含まれています。

{"file":"http:\/\/xxxxxxx.com\/4\/352118314792022053319009.png","date":"15:11:16","save" 
:"Saving:68%"}{"file":"http:\/\/way2enjoy.com\/pdf\/1\/2\/3\/4\/270182314792022054204908.png","date":"15:11:16" 
,"save":"Saving:65%"} 

複数のファイルに対して機能するように助けてください。

+0

2つのファイルの場合、 '$ response'変数はどのように見えますか?エンコードして印刷する前に配列に参加する必要があります –

+0

@RuslanOsmanov http://way2enjoy.com/compress-png – Steeve

答えて

0

2つのファイルオブジェクトを含む文字列は、次々に印刷されるいくつかのJSONオブジェクトのように見えます。あなたは、そうでない場合のエンコードおよび有効なJSONオブジェクトを生成するためにそれらを印刷し、例えば:

$date = date("d:m:y"); 
$response = [ 
    ['file' => $file1, 'date' => $date, 'save' => $saving.'%'], 
    ['file' => $file2, 'date' => $date, 'save' => $saving.'%'], 
]; 
// Also, use the correct MIME type for JSON content 
header('Content-Type: application/json'); 
echo json_encode($response); 

前のアレイに参加する各ファイルの個別のHTTPリクエストを行う必要があります。

+0

これはforeachループから来ています。我々は別ファイル名を作ることはできません – Steeve

+0

@事実、もちろん、異なるファイルに対して異なる配列を作ることは可能です。コードを投稿していないので、私はこの部分であなたを助けることはできません。 –

+0

ここにコードは です。foreach($ _FILES ["file"] ["tmp_name"]は$ key => $ tmp_name) { $ file = $ _ FILES ["file"] ["name"] [$ key] ; ( 'd:m:y')。 ''、 'save' => '' '' $ file ''、 'date' => '' 。$保存。 '%'); echo json_encode($ response); } – Steeve