2017-06-23 4 views
0

Nach dem Hochladen von Bildern ändere ich die Größe mit und sende es an AWS S3. Heute speichere ich die Bilder auf dem lokalen Datenträger, sende nach S3 und lösche dann die lokalen Dateien. Ich möchte die lokalen Dateien speichern und löschen.Bildgröße mit SimpleImage ändern und direkt an Amazon S3 senden

Ich habe versucht:

$S3->putObject([ 
    'Bucket' => 'mybucket', 
    'Key' => 'myfile.jpeg', 
    'Body' => (new SimpleImage('/path/to/myfile.jpeg')) 
        ->bestFit(
         800, 
         600 
        )->toString(); 
]); 

Die Datei sended ist, aber wenn ich die öffentliche URL auf AWS S3 zuzugreifen, versucht der Browser die Datei und nicht zeigen, zum Download bereit.

Jede Hilfe ist willkommen!

Antwort

1

Sie müssen das Objekt öffentlich machen, und fügen Sie Content

$S3->putObject([ 
    'Bucket'  => 'mybucket', 
    'Key'   => 'myfile.jpeg', 
    'ContentType' => 'image/jpeg',  // <-- add this line 
    'Body'  => (new SimpleImage('/path/to/myfile.jpeg')) 
         ->bestFit(
          800, 
          600 
        )->toString(); 
]); 
+0

Der Eimer eine öffentliche Ordnung hat, so dass alle Dateien standardmäßig öffentlich sind –

+0

versuchen ‚Content‘ => ‚Bild‘, auch hinzufügen, vielleicht Es hilft ... Wenn Sie die Bildeigenschaften auf S3 sehen, heißt es, dass es öffentlich ist? auch, versuchen Sie, den Pfad in eine HTML-Seite und sehen, ob das Bild angezeigt wird ... Ich hatte diese Probleme, als ich das Bild über S3 zugegriffen und es heruntergeladen wurde, aber es wurde perfekt in den Browser – dtmiRRor

+0

Hinzufügen des 'ContentType "Es funktioniert gut, danke! Bitte aktualisieren Sie Ihre Antwort, damit ich sie akzeptiere. –