2013-06-20 3 views
0

Image Link для тестированияПочему мое изображение загружается, а не просматривается в браузере?

Когда я нажимаю клик, Chrome, Safari и FF автоматически загружают файл, а вид его в браузере. Как я могу сделать его видимым в браузере? Использование ссылки и тега img отлично работают, это просто, когда используется напрямую, что заставляет загружать.

PHP

// Figure the mime type 
$mimetypes = array(
    'png' => 'image/png', 
    'jpg' => 'image/jepg', 
    'gif' => 'image/gif', 
    'css' => 'text/css', 
    'js' => 'application/x-javascript' 
); 
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); 
$mime = "application/octet-stream"; 
if(array_key_exists($ext, $mimetypes)) { 
    $mime = $mimetypes[$ext]; 
} 

header('Content-Type: ' . $mime); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($filename)); 
readfile($filename); 
+0

Вы уверены, что ваш добавочный файл появится в '$ mimetypes' массива ? Если нет, заголовок 'Content-Type:' будет установлен в 'application/octet-stream', и браузер загрузит файл. Помните: 'JPG! = Jpg' –

+0

@MikeW - У меня там« strtolower ». – Justin808

+0

У вас также есть опечатка. См. Мой ответ ниже. –

ответ

0

Эта строка содержит ошибку:

'jpg' => 'image/jepg', 

Это должно быть

'image/jpeg'. 
+0

ugh, days Я смотрел на это. – Justin808

0

редактировать

Проблема заключается в том, что вы установили тип содержимого неправильно. Поэтому браузер, вероятно, просто отказывается от того, чтобы угадать, что это такое, и попросить вас скачать.

$ curl -D- http://wiki.justinzaun.com/buzz_aldrin/media/aldrin/250 
HTTP/1.1 200 OK 
Date: Thu, 20 Jun 2013 07:34:45 GMT 
Server: Apache 
Expires: 0 
Cache-Control: must-revalidate 
Pragma: public 
Set-Cookie: PHPSESSID=49e5d03f1f0cf87119eef5bc6bb68d4d; path=/ 
Content-Length: 24909 
Content-Type: image/jepg 
0

Я полагаю, вы попробовали его с изображением jpg. У вас есть опечатка в массиве $ mimetypes, из-за чего Content-Type ошибается. Это отлично работает для меня, когда я его отремонтировал. Это восстановленное массив:

$mimetypes = array(
    'png' => 'image/png', 
    'jpg' => 'image/jpeg', 
    'gif' => 'image/gif', 
    'css' => 'text/css', 
    'js' => 'application/x-javascript' 
); 
Смежные вопросы