2016-05-29 4 views
1

Я пытаюсь загрузить изображение с веб-сайта с помощью php со следующим кодом.Force Загрузить изображения с помощью PHP

В настоящее время он idendtify и загружает файл. но загруженный файл не открывается, и он отображается как поврежденный. в чем проблема в приведенном ниже коде?

Также я помещаю эту страницу в одно из мобильных приложений. будет ли он работать и в мобильных устройствах для мобильных устройств

<?php 
$file = "http://example.com/animals/1.jpg"; 
    // Parse Info/Get Extension 
    $fsize = filesize($file); 
    $path_parts = pathinfo($file); 
    $ext = strtolower($path_parts["extension"]); 

    // Determine Content Type 
    switch ($ext) 
    { 
     case "gif": $ctype="image/gif"; break; 
     case "png": $ctype="image/png"; break; 
     case "jpeg": 
     case "jpg": $ctype="image/jpg"; break; 
     default: die('Wrong Extension'); 
    } 

    header("Pragma: public"); // required 
    header("Expires: 0"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: private", false); // required for certain browsers 
    header("Content-Type: $ctype"); 
    header("Content-Disposition: attachment; filename=\"Test".basename($file)."\";"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: " . $fsize); 
    ob_clean(); 
    flush(); 
    readfile($file); 
exit(); 
?> 

ответ

0

Вам необходимо отправить поток данных в браузер.

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); // change this will work for you. 
header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 
exit; 
+0

благодарит за ответ. Я пробовал с заданным кодом. Но все же он показывает то же самое, что изображение повреждено или повреждено или слишком велико и не может быть открыто. Я вижу, что размер изображения немного уменьшен. Исходное изображение было 9kb, но загруженное изображение - 8kb. это что-то, что вызывает проблему? – user3391693

Смежные вопросы