2017-10-25 4 views
-1

Ich habe eine Bild-URL wie folgt aus:Wie Bild von URL in Laravel herunterladen?

http://phpimagick.com/customImage/Imagick/distortImage?imagePath=Lorikeet&distortion=1

ich dieses Bild in meinem öffentlichen Ordner in Laravel herunterladen möchten, und dann das Bild aus meinem öffentlichen Datei holen und in meinem Projekt verwenden.

Die gleiche Code Arbeit für diese URL:

http://i.stack.imgur.com/WCveg.jpg

(Das Bild in dieser URL ist ein JPG).

Mein Code:

if ($request->city_image_hidden_link) {       
    $image_to_upload = $request->city_image_hidden_link; 
    $extra_name = rand(1, 50000) + time(); 

    $filename = basename($image_to_upload); 

    file_put_contents('assets/UploadedImages/' .$extra_name . $filename,file_get_contents($image_to_upload)); 
    $target_dir = "assets/UploadedImages/"; 
    $image_to_upload = "/" . $target_dir . $extra_name.$filename; 
    $data['city_image'] = $image_to_upload; 
} 

Antwort

0

die Erweiterung aus dem Dateinamen nicht übernehmen Sie aber aus dem MIME-Typ

$imageDownloaded = file_get_contents($image_to_upload); 
$imageType = exif_imagetype($imageDownloaded); 
$mimeType = explode('/', image_type_to_mime_type($imageType)); 
$extension = $mimeType[1]; 

Natürlich können Sie dort die Logik weiter verbessern können, überprüfen Sie auch die Existenz oder Falsey zurückkehrt für die Kürze übersprungen