правильный способ загрузки изображения в базу данных
Я знаю, что некоторые из вас скажут, что это не правильный путь, но я в сжатые сроки, чтобы завершить приложение, и на данный момент я не могу вернуться и изменить код для хранения изображений в каталоге.
теперь, когда это очищено
у меня возник вопрос: я вставил изображение в базу данных, набрав это.
(не возражайте против вызова безопасности класса, все, что делает, это несколько проверок, если данные действительны)
<code>$filename = $security->secure($_FILES['imgschool']['name']); $tmpname = $security->secure($_FILES['imgschool']['tmp_name']); $imgsize = $security->secure($_FILES['imgschool']['size']); $imgtype = $security->secure($_FILES['imgschool']['type']); $school = $security->secure($_POST['school']); //begin upload if($imgsize > 0) { $handle = fopen($tmpname, "r"); $content = fread($handle, filesize($tmpname)); $content = addslashes($content); //code to add all this to database } </code>
переменная $ content является изображением, и все, что она получает, это addlashes. Я помню, как кто-то однажды упомянул о том, чтобы сделать это с помощью base64, но я едва могу вспомнить, как это было написано.
Вот как я называю изображение из базы данных
помимо всех запросов и еще много чего это основная часть, которая вызывает изображение
<code>header("Content-length: ".$imgsize); header("Content-type: ".$imgtype); header("Content-Disposition: attachment; filename=".$imgname); print $row['img']; </code>
проблема у меня в том, что вместо показа изображения. URL только показывает, так что в этом случае я вижу только это
HTTP: //localhost/admin/school-catalog.php страница = галерея & амп; ID = 4
при открытии страницы для просмотра изображения с правильными параметрами, установленными в URL.
для тех, кто хотел увидеть запрос, который делается для сохранения изображения и т. д. я скопировал весь раздел
<code>//save image to db if(isset($_POST['btnupload'])) { $filename = $security->secure($_FILES['imgschool']['name']); $tmpname = $security->secure($_FILES['imgschool']['tmp_name']); $imgsize = $security->secure($_FILES['imgschool']['size']); $imgtype = $security->secure($_FILES['imgschool']['type']); $school = $security->secure($_POST['school']); //begin upload if($imgsize > 0) { $handle = fopen($tmpname, "r"); $content = fread($handle, filesize($tmpname)); $content = base64_encode($content); } $save = mysql_query("insert into tbl_schoolgallery(id,hash,img,imgtype,imgsize) values(null,'$school','$content','$imgtype','$imgsize')") or die(mysql_error()); header("Location: school-catalog.php?page=school_gallery"); } //call image from db $query = mysql_query("select * from $tbl where id = '$id'") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { $imgtypeget = explode("/", $row['imgtype']); $imgname = "img.".$imgtypeget[1]; $imgtype = $row['imgtype']; $imgsize = $row['imgsize']; header("Content-length: ".$imgsize); header("Content-type: ".$imgtype); print base64_decode($row['img']); print $row['img']; } </code>