2016-11-15 3 views
0

Ich benutze diesen PHP-Code, der fehlerfrei für eine Datei funktioniert, aber wenn ich mehrere Dateien hochlade, generiert Json Fehler.json Ausgabe für mehrere Dateien

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

echo json_encode($response); 

Wenn ich eine Datei bin mit dem json Ausgang gilt

{"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%"} 

aber wenn ich bin mit zwei oder mehr Dateien json Ausgabe ist ungültig und enthält Fehler.

{"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%"} 

Jede Hilfe wird groß sein, damit es für mehrere Dateien funktioniert.

+0

Zeigen Sie uns den Fall mit zwei Dateien, wie die Variable '$ response' aussieht? Sie sollten die Arrays vor dem Kodieren und Drucken –

+0

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

Antwort

0

Die Zeichenfolge mit zwei Dateiobjekten sieht aus wie ein paar JSON-Objekte, die nacheinander gedruckt werden. Sie sollten die Felder vor der Codierung und drucken, um ein gültiges JSON-Objekt, z.B .:

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

Andernfalls machen separate HTTP-Anforderungen für jede Datei zu erzeugen, verbinden.

+0

diese kommen aus foreach-Schleife. Wir können keinen separaten Dateinamen machen – Steeve

+0

@Steeve, natürlich ist es möglich, verschiedene Arrays für verschiedene Dateien zu machen. Sie haben Ihren Code nicht veröffentlicht, daher kann ich Ihnen bei diesem Teil nicht helfen. –

+0

hier Code foreach ($ _ FILES [ "file"] [ "tmp_name"] als $ key => $ tmp_name) { $ file = $ _ FILES [ "file"] [ "name"] [$ key] ; $ Antwort = Array ('Datei' => ''. $ Datei. '', 'Datum' => '' .Datum ("D: M: Y"). '', 'Speichern' => '' . $ speichern. '%'); echo json_encode ($ response); } – Steeve