Я только недавно спросил и решил вопрос, связанный с загрузкой файлов .PDF размером более 2 МБ в базу данных MySQL как BLOBS. Мне пришлось изменить некоторые параметры в файле php.ini и максимальном наборе пакетов MySQL. Однако, исправление этой проблемы привело меня к обнаружению новой проблемы с моим скриптом.BLOB Download Усечен с 1 Мб сценария для файлов менее 1 МБ
Теперь, поскольку я могу загружать файлы в свою базу данных BLOB, я попытался загрузить файл для целей тестирования. К моему большому разочарованию, когда я пошел открывать файл .PDF, я получил следующую ошибку: Не удалось загрузить документ (ошибка 3) 'file: ///tmp/test-13.pdf'. После дальнейшего расследования выяснилось, что загружаемый файл test.pdf был всего лишь 1 МБ, что чуть меньше половины его предполагаемого размера в базе данных чуть более 2 МБ. Это, очевидно, причина ошибки.
Следующий фрагмент кода является частью моего сценария, который я использую для загрузки файлов из базы данных. Он находится на самом верху скрипта и работает безупречно для файлов размером менее 1 МБ.
foreach($_REQUEST as $key => $value)
{
if ($value == 'Open')
{
header();
session_start();
$dbh = new PDO('mysql:host='.$_SESSION['OpsDBServer'].'.ops.tns.its.psu.edu;
dbname='.$_SESSION['OpsDB'], $_SESSION['yoM'], $_SESSION['aMa']);
$id = $key;
$sqlDownload = "SELECT name, type, content, size FROM upload WHERE
id='".$id."'";
$result = $dbh->query($sqlDownload);
$download = $result->fetchAll();
$type = $download[0]['type'];
$size = $download[0]['size'];
$name = $download[0]['name'];
$content = $download[0]['content'];
header("Content-type: $type");
header("Content-Disposition: inline; filename=$name");
header("Content-length: $size");
header("Cache-Control: maxage=1");
header("Pragma: public");
echo $content;
exit;
}
}
Я имею в виду, что, может быть, у меня есть некоторые заявления заголовка не так? Я очень смущен тем, что делать. Я искал через php.ini, и я не нашел никаких параметров, которые, как мне кажется, нужно изменить, и моя максимальная настройка пакета для MySQL составляет 4 МБ, поэтому необходимо загрузить 2 МБ.
Спасибо за любую помощь.
Вы дважды проверили, что * размер * установлен правильно в вашей базе данных? –
Я еще не проверил, но когда я вернусь к работе в понедельник. – dbaugh