У меня есть сценарий загрузки, написанный на PHP. Мой скрипт файла просмотра связывается с идентификаторами, а затем выбирает все данные, соответствующие ID.
Затем данные используются для загрузки фотографии. Имеет ли значение, что моя фотография находится в папке? Он перемещается в папку, а затем каталог загружается в базу данных MYSQL.
В настоящий момент код позволяет некоторым файлам загружаться, а затем большинство из них будут повреждены. Почему?
Mysql table info... $cool = $_GET['id']; $sql = "SELECT id, type, name, size FROM upload WHERE id='$cool'"; $result = mysql_query($sql, $db); $data = mysql_result($result, 0, "id"); $name = mysql_result($result, 0, "name"); $size = mysql_result($result, 0, "size"); $type = mysql_result($result, 0, "type"); header("Content-type: $type"); header("Content-length: $size"); header("Content-Disposition: attachment; filename=$name"); header("Content-Description: PHP Generated Data"); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); ob_clean(); flush(); readfile($name); exit();
Это происходит из-за того, что PHP отправляет некоторую информацию после эхо-данных, решение этого – прекратить обработку сразу после того, как вы эхом отошли от данных, для этого добавьте exit();
сразу после echo $data
.