2012-03-31 5 views
2

Я пытаюсь загрузить изображение через PHP, но я не знаю, как это сделать. Имя файла хранится в базе данных, таких как image.jpgЗагрузка изображения через PHP

if($_GET['image']){ 
    // Client requesting image, so retrieve it from DB 
    $id = mysql_real_escape_string($_GET['image']); 
    $sql = "SELECT * FROM $tbl_name WHERE id = '$id' LIMIT 1"; 
} 

Клиент должен запросить изображение как так

http://example.com/index.php?image=1 

И тогда он должен вернуть изображение, поэтому он может быть встроен, как это :

<img src="http://example.com/index.php?image=1" alt="" /> 

Возможно ли это?

+0

Все изображения JPG? – safarov

ответ

13
$img = 'path/to/image.jpg'; 
header('Content-Type: image/jpeg'); 
readfile($img); 

просто тестировал

+0

Отличное спасибо! – Adam

+1

Также посмотрите [readfile] (http://php.net/manual/en/function.readfile.php), он «объединяет» шаги 'file_get_contents' и' echo'. – stewe

0

Предлагаю сначала создать файл с именем image.php. Таким образом, вы будете называть image.php? Id = 1

Имейте заголовок image.php как тип изображения. header ('Content-Type: image/jpeg');

Затем вы можете использовать библиотеку GDImage в PHP для загрузки изображения и вывода его. Или вы можете прочитать файл и вывести его. Заголовок() является ключевым.

2

Вы можете использовать библиотеку GD для этого. Вы начинаете с создания ресурса с помощью функции типа http://php.net/imagecreatefromjpeg. Вам необходимо указать путь в качестве параметра.

После этого вы просто выводите ресурс, используя функцию, такую ​​как http://php.net/imagejpeg.

Не забудьте отправить заголовок типа контента, а также использовать imagedestroy на ресурсе.

Update:

Рассмотрим этот пример:

$im = imagecreatefromjpeg('path/to/image.jpg'); 
header('Content-Type: image/jpeg'); 
imagejpeg($img); 
imagedestroy($img); 
+2

В чем смысл использования GD? – safarov

+0

@safarov, возможно, это упростит продление, если потребуются определенные изменения .. Я не сказал, что это единственный способ, я просто предложил вариант. – mishu

0

Вот мое решение:

$mime = 'image/jpg'; 
$out_image = 'default.jpg'; //default no photo image 
$user_img = 'image.jpg'; //it can be gif, png, jpg 

//Check if file exist in directory 
if(file_exist('/path/to/'.$user_img)) { 
    $s = imagesize($user_img); 
    $mime = $s['mime']; 
    $out_image = $img_data; 
} 

header('content-type: '.$mime); 
readfile($img_data); 
Смежные вопросы