Моя программа загружает изображения различных размеров в поле blob базы данных MySQL с использованием PHP. Я смог успешно загрузить различные размеры до 1 МБ и выше. Моя проблема заключается в том, что когда я их показываю, я смог отображать изображения размером менее 10 КБ. Для больших изображений отображается ошибка. ..... не может быть отображен, так как содержит ошибки (в Firefox), а в Chrome он просто отображает место для изображения. Я пробовал так много трюков, и я везде гугл. Я редактировал как php.ini, так и my.ini. Моя программа - приложение для интрасети, и одновременно будет менее 50 пользователей. Это сценарий, который используется для отображения изображений:Почему некоторые изображения не отображаются
Если я удаляю заголовок ('Content-Type:'. $ Resource_type), он выгружает двоичный код на экран. Я увеличил размер пакета MySQL до 100 МБ, и проблема не устранена.
$d_id= $_GET['k'];$query="";$query_handle=0;$row="";$no_of_rows=0;
$query="SELECT * FROM tdoc ";
$query.=" WHERE ucase(trim(fsha_doc_key))='".strtoupper(trim($d_id))."' ";
$query_handle=mysql_query($query,$conn_handle);
if(!$query_handle) {$error_flag=1;echo '<br />Unable to execute query to Extract Resource CODE:FREF';}
if($query_handle) $no_of_rows=mysql_num_rows($query_handle);
if(($query_handle)&&($no_of_rows<=0)) {$error_flag=1;echo '<br />The Exact Resource: '.strip_tags($d_id).' NOT found ';}
if(($query_handle)&&($no_of_rows>0)){
$row=mysql_fetch_assoc($query_handle);
$resource_type=trim($row['ftype']);
$resource_size=$row['fsize'];
$resource_h=$row['fheight'];
$resource_w=$row['fwidth'];
$d_resource=$row['fdoc'];
header('Content-Type: '.$resource_type);
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Content-Length: '.filesize($d_resource));
header('Content-height: '.$resource_h);
header('Content-width: '.$resource_w);
echo stripslashes(base64_decode($d_resource));
}
Я прочитал исключительно сообщения, касающиеся эту ошибку здесь, но никто не решить мой конкретный вопрос, потому что шахта отображения уменьшенных изображений размера, но не изображения до и выше 10kb. 10kb далеко от моего прогнозируемого среднего размера изображения, который будет загружен позже. Пожалуйста помоги.
Похоже, вы можете открыть SQL-инъекцию? – John
просто предложение, вы не должны сохранять целые файлы в своей базе данных, вы должны сохранить его в каталоге на своем сервере, а затем ссылаться на ссылку на файл в msql ... –