Я знаю, что некоторые из вас скажут, что это неправильный способ, но у меня сжатые сроки, чтобы закончить приложение, и на данный момент я не могу вернуться и изменить код для хранения изображений в каталоге.
теперь, когда это очищено
у меня был вопрос: я вставил изображение в базу данных, набрав это.
(не обращайте внимания на вызов безопасности класса, все, что нужно сделать, это несколько проверок правильности данных)
$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
}
переменная $content — это изображение, и все его получение — это добавление слэшей. Я помню, как кто-то однажды упомянул сделать это с помощью чего-то под названием base64, но я едва могу вспомнить, как это было написано.
вот как я вызываю изображение из базы данных
помимо всех запросов и многого другого, это основная часть, которая вызывает изображение
header("Content-length: ".$imgsize);
header("Content-type: ".$imgtype);
header("Content-Disposition: attachment; filename=".$imgname);
print $row['img'];
проблема, с которой я сталкиваюсь, заключается в том, что вместо отображения изображения. URL-адрес только отображается, поэтому в этом случае я вижу только это
http://localhost/admin/school-catalog.php?page=gallery&id= 4а>
при открытии страницы для просмотра изображения с правильными параметрами, установленными в URL-адресе.
для тех, кто хотел увидеть запрос, который делается для сохранения изображения и т. д., я скопировал весь раздел
//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'];
}