Я использую фантом для захвата изображений, а затем загружаю их в централизованную базу данных MySQL.PDO Blob Insert Missing Data
Проблема, с которой я сталкиваюсь, заключается в том, что она последовательно разрезает конец каждого файла, который я пытаюсь нажать. Неважно, если это .pdf, .png, .docx, .xlsx ... он отсекает часть файла, тем самым разлагая его. Странно то, что он всегда сокращает одну и ту же сумму от каждого файла.
My SQL вставить код:
$put_linkdata = $DBW->prepare('INSERT `'.$tableD.'` SET
captured = :capture_time,
error = :eYN,
link = :link,
image = :image,
html = :html,
`text` = :plaintext,
file = :file,
mimetype = :mimetype');
$put_linkdata->bindValue(':capture_time', date('Y-m-d H:i:s',$record['timestamp']));
$put_linkdata->bindValue(':link', $item['url']);
$put_linkdata->bindValue(':mimetype', $record['mimetype']);
$put_linkdata->bindParam(':eYN', $record['error'], PDO::PARAM_STR);
$put_linkdata->bindParam(':image', $record_child['image'], PDO::PARAM_LOB);
$put_linkdata->bindParam(':plaintext', $record_child['text'], PDO::PARAM_LOB);
$put_linkdata->bindParam(':html', $record_child['html'], PDO::PARAM_LOB);
$put_linkdata->bindParam(':file', $record_child['file'], PDO::PARAM_LOB);
if($put_linkdata->execute()){
$linkData_record['id'] = $DBW->lastInsertId();
print PHP_EOL.mb_strlen($record_child['image'], '8bit');
print PHP_EOL.PHP_EOL.'~~~~~~~~~~~~~~~~~~~~~~~~~~~'.PHP_EOL.PHP_EOL;
die();
}
else{
throw New Exception('Error inserting linkdata record into archive - SQL error "'.$put_linkdata->queryString.'"'.PHP_EOL.PHP_EOL.$put_linkdata->errorInfo());
}
Я бежал тонну испытаний и все перед, чтобы здесь данные по-прежнему сохраняет целостность, и если я file_put_contents() это совпадает с захваченного изображения или файла ,
Пример изображений, потянув google.com, дает мне изображение 25K, но загрузка составляет 17,2K. PDF, который составляет 55K, загружается на 40,7K. Другой pdf-файл составляет 1,5 МБ, но загружает его в 1,1 МБ. Когда я разбираю файл с блоком db, в блоке DB отсутствует содержимое в нижней части файла.
Размер и содержание не согласованы между файлами, но IS согласованы для идентичных захватов.
У кого-нибудь есть идеи?
Обновление Я сузил его до чего-то, что произошло между подготовленным заявлением и загрузкой.
Также это происходит как в PDO, так и в MySQLI при использовании подготовленного оператора. Первое предположение заключалось в том, что кодировка кодировки где-то некорректна, однако все определяется как UTF8 (db, table, PDO connection, config files).
Я предполагаю, что BLOB недостаточно велик для хранения данных. Попробуйте либо MEDIUMBLOB, либо LONGBLOB. Я уже ответил на подобный вопрос, прежде всего, будучи именно этим; слишком маленький тип столбца. –
На самом деле это столбец LONGBLOB, но я попытался изменить его на MEDIUM и BLOB, чтобы узнать, связано ли это с PDO и размером блоба. Ни одна из этих изменений не работала, и даже если это был BLOB, 25K все еще находится в этом диапазоне. – Lilbnyfufu
Является ли время ожидания скрипта перед его завершением загрузки капли? – Mazodude