La méthode générale pour télécharger des images dans la base de données puis les afficher consiste à écrire une page PHP dédiée, à obtenir l'ID de l'image via la méthode GET ou POST, à interroger la base de données, à afficher le type d'image via la fonction d'en-tête. , puis faites écho aux données d'image.
Détails du problème :
php peut télécharger des fichiers dans le champ blob
de la base de données via le formulaire, puis sortie, En fait, une meilleure approche consiste à enregistrer le fichier sur le serveur et à enregistrer uniquement les informations pertinentes dans la base de données, mais vous ne pouvez pas toujours faire ce que vous voulez. Non, je peux uniquement télécharger des images dans la base de données puis les afficher sur la page Web, mais j'ai rencontré un problème : les images ne peuvent pas être affichées.
La méthode générale pour télécharger des images dans la base de données puis les afficher est d'écrire une page php dédiée, d'obtenir l'identifiant de l'image via la méthode GET
ou POST
, d'interroger la base de données, les sorties de la fonction d'en-tête le type d'image, puis faites écho aux données de l'image. C'est tout. Il n'y a aucun problème avec cette méthode, mais j'ai un problème. L'image ne peut pas être affichée.
J'ai cherché beaucoup d'informations sur Internet et essayé de nombreuses méthodes, mais rien n'a fonctionné Finalement, j'ai vu une réponse sur stack overflow
Comme elle est en anglais, je ne citerai pas la phrase originale. le contenu est : header
Cette fonction a une particularité, veillez à ne pas avoir d'autres en-têtes ou autres contenus avant la position header
Le résultat est ce problème puisque j'ai écrit un fichier php qui contient certaines fonctions courantes, y compris des fonctions javascript. , je génère l'image. Supprimez simplement l'instruction require du fichier php et l'image sera affichée.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="html/text;charset=utf-8"/> </head> <body> <form action="#" name="form" method="post" enctype="multipart/form-data"> <p> <input type="file" name="img" value="选择上传文件"/> </p> <input type="submit" value="上传"/> </form> </body> </html> <?php date_default_timezone_set("PRC"); //设置时区 if(count($_FILES)>0){ $sort = array("image/jpeg","image/jpg","image/gif","image/pdg"); //判断是否是图片类型 if(in_array($_FILES['img']['type'],$sort)){ $img = "img"; //获取上传到的文件夹位置 //判断文件夹是否存在 ,如果不存在创建一个 if(!file_exists($img)){ mkdir("$img",0700); //0700最高权限 } $time=date("Y_m_d_H_i_s"); //获取当前时间 $file_name = explode(".",$_FILES['img']['name']); //$_FILES['img']['name'] 上传文件的名称 explode字符串打断转字符串 $file_name[0]=$time; $name = implode(".",$file_name); //implode 把数组拼接成字符串 $img_name = "img/".$name; if(move_uploaded_file($_FILES['img']['tmp_name'],$img_name)){ //move_uploaded_file 移动文件 echo "<center><img style='width:1000px;' src='$img_name'> <p> <a href='img_uploading.php'>重新上传</a></p></center>"; }else{ echo "上传失败"; } }else{ echo "不是图片类型"; } } ?>
Je dois dire que la programmation est parfois un casse-tête. Juste à cause d'une déclaration, il m'a fallu une journée pour essayer différentes méthodes mais la programmation est une chose intéressante, car dans Quand le problème est résolu et le Le programme se déroule avec succès, le sentiment d'accomplissement et de satisfaction est vraiment inoubliable.
Plus de tutoriels d'apprentissage : Tutoriel de téléchargement d'images PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!