>백엔드 개발 >PHP 튜토리얼 >PHP에서 표시할 수 없는 이미지를 업로드하는 데 문제가 있습니다.

PHP에서 표시할 수 없는 이미지를 업로드하는 데 문제가 있습니다.

卡哇伊
卡哇伊원래의
2020-07-06 11:15:352973검색

이미지를 데이터베이스에 업로드하고 표시하는 일반적인 방법은 전용 PHP 페이지를 작성하고 GET 또는 POST 메서드를 통해 이미지 ID를 얻은 후 데이터베이스에 쿼리하고 헤더 함수를 통해 이미지 유형을 출력한 다음 에코하는 것입니다. 이미지 데이터.

PHP에서 표시할 수 없는 이미지를 업로드하는 데 문제가 있습니다.

문제 세부 정보:

php는 양식을 통해 데이터베이스의 blob 필드에 파일을 업로드한 다음 출력할 수 있습니다. 실제로 더 좋은 방법은 파일을 저장하는 것입니다. 파일을 서버에, 데이터베이스에만 관련 정보를 기록하는 것으로 충분하지만 항상 원하는 대로 할 수는 없습니다. 아니요, 사진을 데이터베이스에 업로드한 다음 웹페이지에 표시할 수만 있는데 문제가 발생했습니다. 사진을 표시할 수 없습니다. blob字段,然后输出,其实更好的做法是把文件保存到服务器,只在数据库中记录相关信息就可以了,但是不是任何时候都能照自己的想法去做。这不,我只能上传图片到数据库然后显示在网页,结果却遇到了问题:图片无法显示。

把图片上传到数据库然后显示一般的做法是专门写一个php页面,通过GETPOST方法获取图片的id、查询数据库、header函数输出图片类型、再echo图片数据就可以了,这个方法是没有问题的,可是我却出了问题,图片总是无法显示。

在网上查询了很多资料,试了很多方法,都不行,最后在stack overflow上看到一个回答,由于是英文就不原句引用了,内容是header这个函数有些特殊,要小心不要在header

이미지를 데이터베이스에 업로드한 다음 표시하는 일반적인 방법은 전용 PHP 페이지를 작성하고 GET 또는 POST 메서드를 통해 이미지 ID를 얻은 다음 헤더 함수를 통해 이미지를 출력한 다음 이미지 데이터를 에코합니다. 이 방법에는 문제가 없지만 이미지를 표시할 수 없는 문제가 있습니다.

인터넷에서 많은 정보를 찾아보고 여러 방법을 시도했지만 결국에는 Stack Overflow에 대한 답변을 보았습니다. 영어로 되어 있으므로 원문은 인용하지 않겠습니다. . 내용은 header입니다. 이 함수는 조금 특별합니다. header 위치 앞에 다른 헤더나 다른 내용이 있지 않도록 주의하세요. 몇 가지 일반적인 기능이 포함된 PHP 파일입니다. 여기에는 JavaScript 기능도 포함되어 있습니다. 이미지를 출력하는 PHP 파일에서 require 문을 제거하면 이미지가 출력될 수 있습니다.

<!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 "不是图片类型";
}
}
?>
프로그래밍은 때로는 매우 귀찮은 일이라고 말씀드리고 싶습니다. 단지 구문 때문에 여러 가지 방법을 시도하는 데 하루가 걸렸지만 프로그래밍은 흥미로운 일입니다. 문제를 해결한 후 프로그램이 성공적으로 실행되기 때문입니다. , 성취감과 만족감은 정말 잊을 수 없습니다.

추가 학습 튜토리얼: 🎜PHP 이미지 업로드 튜토리얼🎜🎜

위 내용은 PHP에서 표시할 수 없는 이미지를 업로드하는 데 문제가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.