Maison  >  Article  >  développement back-end  >  Problème avec le téléchargement d'images php qui ne peuvent pas être affichées

Problème avec le téléchargement d'images php qui ne peuvent pas être affichées

卡哇伊
卡哇伊original
2020-07-06 11:15:352865parcourir

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.

Problème avec le téléchargement d'images php qui ne peuvent pas être affichées

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[&#39;img&#39;][&#39;type&#39;],$sort)){ 
 $img = "img";    //获取上传到的文件夹位置
//判断文件夹是否存在 ,如果不存在创建一个
if(!file_exists($img)){
   mkdir("$img",0700);        //0700最高权限
}
$time=date("Y_m_d_H_i_s");     //获取当前时间
$file_name = explode(".",$_FILES[&#39;img&#39;][&#39;name&#39;]);         //$_FILES[&#39;img&#39;][&#39;name&#39;] 上传文件的名称 explode字符串打断转字符串
$file_name[0]=$time; 
$name = implode(".",$file_name);    //implode 把数组拼接成字符串
$img_name = "img/".$name;
if(move_uploaded_file($_FILES[&#39;img&#39;][&#39;tmp_name&#39;],$img_name)){   //move_uploaded_file 移动文件
   echo "<center><img style=&#39;width:1000px;&#39; src=&#39;$img_name&#39;>
   <p>
   <a href=&#39;img_uploading.php&#39;>重新上传</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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn