찾다
백엔드 개발PHP 튜토리얼表单上传图片存储到数据库

我要做一个向数据库写入数据的功能 数据项目有编号 名称之类的 其中有图片 
想请教如何上传图片并将地址写在对应表单中 之后提交每一项都存入数据库


回复讨论(解决方案)

具体可查看php上传图片,并将路径写入数据库。
http://blog.163.com/leiliuxing2010@126/blog/static/2986935420099291022486/

具体可查看php上传图片,并将路径写入数据库。
http://blog.163.com/leiliuxing2010@126/blog/static/2986935420099291022486/



求详解

上传图片可以选择很老土的php上传,自行百度。
也可以选择插件,包括专业的上传图片插件(推荐plupload)和文本编辑器插件(推荐kindeditor)(就像最下方提交回复的框就可以插入图片)。
在企业里开发会直接使用开源框架,根本就不需要考虑上传的问题。
如果你要学习,可以先做最原始的php上传

给你百度的, 你应该可以看懂吧
http://zhidao.baidu.com/link?url=wyTYBtPqh5KjrsWVBbElDKEMvlggc3IAXdOvhG9-DX42uZfHPFybSnSqHkLLko-rNIu1gy0_suV3e3RtgbgxKAvp2KKNk_TdPXf8fDMlt-a

有例子,有解释,有代码。
http://blog.csdn.net/fdipzone/article/details/39915131

给你百度的, 你应该可以看懂吧
http://zhidao.baidu.com/link?url=wyTYBtPqh5KjrsWVBbElDKEMvlggc3IAXdOvhG9-DX42uZfHPFybSnSqHkLLko-rNIu1gy0_suV3e3RtgbgxKAvp2KKNk_TdPXf8fDMlt-a


这个看过 
我还需要存入数据库并读出图片地址来赋值给表单 请问怎么做

有例子,有解释,有代码。
http://blog.csdn.net/fdipzone/article/details/39915131



这个是将图片转为二进制流存到数据库的
我希望是将图片上传到服务器一个文件夹中,然后表单内赋值图片路径地址 
以上通过点击上传 出现选择文件框 选择图片确认 表单出现图片保存的地址 然后填好其他信息 提交
请问有这种的吗

是不是要先上传(用和那个一样的方法) 产生临时文件 有一个绝对路径 然后用move_uploaded_file()移动到我想指定的目录 
然后表单内赋值 目录/$图片名称.jpg 这样的啊 
这样的话求教如何实现,还是有代码有实感点...初学者见谅

是不是要先上传(用和那个一样的方法) 产生临时文件 有一个绝对路径 然后用move_uploaded_file()移动到我想指定的目录 


有例子,有解释,有代码。
http://blog.csdn.net/fdipzone/article/details/39915131



这个是将图片转为二进制流存到数据库的
我希望是将图片上传到服务器一个文件夹中,然后表单内赋值图片路径地址 
以上通过点击上传 出现选择文件框 选择图片确认 表单出现图片保存的地址 然后填好其他信息 提交
请问有这种的吗

是不是要先上传(用和那个一样的方法) 产生临时文件 有一个绝对路径 然后用move_uploaded_file()移动到我想指定的目录 
然后表单内赋值 目录/$图片名称.jpg 这样的啊 
这样的话求教如何实现,还是有代码有实感点...初学者见谅


是不是要先上传(用和那个一样的方法) 产生临时文件 有一个绝对路径 然后用move_uploaded_file()移动到我想指定的目录 

是的,只要上传,就需要使用move_uploaded_file来移动到指定目录。


写了个例子:

CREATE TABLE IF NOT EXISTS `member` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `username` varchar(50) NOT NULL,  `photo` varchar(200) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


client.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  <html>   <head>    <meta http-equiv="content-type" content="text/html; charset=utf-8">    <title> Demo </title>   </head>     <body>      <form name="form1" id="form1" method="post" enctype="multipart/form-data" action="server.php">          <p>name:<input type="text" name="username" ></p>          <p>photo:<input type="file" name="photo" id="photo"></p>          <p><input type="submit" name="b1" value="submit"></p>  		<input type="hidden" name="send" value="true">    </form>      <div id="result"></div>   </body>  </html>  


server.php
<?php	//打开数据库	function opendb(){		$conn=@mysql_connect("localhost","root","")  or die(mysql_error());		@mysql_select_db('test',$conn) or die(mysql_error());		}	//关闭数据库	function closedb(){		@mysql_close() or die("關閉數據庫出錯!");	}    opendb();    // 上传图片并提交到数据库    if(isset($_POST['send'])=='true'){        $username = isset($_POST['username'])? $_POST['username'] : '';          $filename = time().substr($_FILES['photo']['name'], strrpos($_FILES['photo']['name'],'.'));          if(move_uploaded_file($_FILES['photo']['tmp_name'], $filename)){              $sqlstr = "insert into member(`username`,`photo`) values('".addslashes($username)."','".addslashes($filename)."')";            @mysql_query($sqlstr) or die(mysql_error());        }      }    echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';    $sqlstr = "select * from member";    $query = mysql_query($sqlstr) or die(mysql_error());    while($thread=mysql_fetch_assoc($query)){        $result[] = $thread;    }    if($result){        foreach($result as $val){            echo $val['username'].' <img  src="/static/imghwm/default1.png"  data-src="'.$val['photo'].'"  class="lazy"  .$val['photo'].'" alt="表单上传图片存储到数据库" ><br>';        }    }?>


数据库名,连接用户名密码改为你自己的。

server.php  的 $filename那一段没看明白 那是要移动到的指定路径吗 怎么改

server.php  的 $filename那一段没看明白 那是要移动到的指定路径吗 怎么改



$filename 就是定义,你上传的文件,放在服务器哪里,文件名称是什么。

例如 $filename= "1.jpg";

图片上传后,就会在当前目录生成1.jpg。


server.php  的 $filename那一段没看明白 那是要移动到的指定路径吗 怎么改



$filename 就是定义,你上传的文件,放在服务器哪里,文件名称是什么。

例如 $filename= "1.jpg";

图片上传后,就会在当前目录生成1.jpg。

那上面那个就是放在当前目录,并且名称更改为一个唯一的由数字组成的名称
如果我要保存到 当前目录/wx/ss 文件夹下  那这句要怎么改
$filename  = "../wx/ss/time().substr($_FILES['photo']['name'], strrpos($_FILES['photo']['name'],'.'));"  不行 做了些改动也没成功
另外如图 添加页面
 
name那一行 和submit不要 
点击上传后选择好图片确定 图片地址表单中出现图片的路径链接
标题到是否有效都是个表中的 所以想将name,photo两项加进来 不显示 
以后编辑只需要再上传一张图片图片地址就改变
另外删除的话怎样保证数据库的记录和文件夹里的图片都删除呢

$filename = time().substr($_FILES['photo']['name'], strrpos($_FILES['photo']['name'],'.'));  

改为

$filename = 'wx/ss'. time().substr($_FILES['photo']['name'], strrpos($_FILES['photo']['name'],'.'));  

wx/ss 这个文件夹要存在

新手,我是来学习的!
上面的大大给的代码赞,
已经实现表单带上传图片存入数据库了,感动QAQ

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP의 의존성 주입 : 일반적인 함정을 피하십시오PHP의 의존성 주입 : 일반적인 함정을 피하십시오May 16, 2025 am 12:17 AM

의존성 (di) inphpenhancescodeflexibility 및 testability는 decouplingdependencycreation fromusage.toimplementDieffectically : 1) addicontainersjudicuelyToavoidover-Engineering.2) indhe. 3) adhe

PHP 웹 사이트 속도를 높이는 방법 : 성능 조정PHP 웹 사이트 속도를 높이는 방법 : 성능 조정May 16, 2025 am 12:12 AM

toimproveyourphpwebsite의 성능, UsetheseStrospations : 1) ubstractOpCodeCachingWithOpCaceToSpeedUpscriptScriptIngretation.2) 최적화 된 AabaseQueriesBysElectingOnlynecessaryFields.3) UsecachingsystemsLikeredSormcedUcedUcedUcedALOW

PHP와 함께 대량 이메일 보내기 : 가능합니까?PHP와 함께 대량 이메일 보내기 : 가능합니까?May 16, 2025 am 12:10 AM

예, itispossibletosendmassemailswithphp.1) uselibraries -lifephpmailerorswiftmailerforfficialemailsending.2) emubledelaysbetemailstoavoidspamflags.3) personalizeemailsingdynamiccontenttoimproveengement.4) usequeuesystemslikerbitmbitmquredisb

PHP에서 의존성 주입의 목적은 무엇입니까?PHP에서 의존성 주입의 목적은 무엇입니까?May 16, 2025 am 12:10 AM

의존성 (di) inphpisadesignpatternthatachievesinversionofcontrol (ioc) by ancelociestobeinjectedintoclasses, 향상 모듈 성, 테스트 가능성 및 flexibility.didecouplesssclassessfromspecificimplementations, codemoremanageableandadapt

PHP를 사용하여 이메일을 보내는 방법?PHP를 사용하여 이메일을 보내는 방법?May 16, 2025 am 12:03 AM

PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 다음과 같습니다. 1. 기본 전송에 Php 's Mail () 함수를 사용합니다. 2. phpmailer 라이브러리를 사용하여 더 복잡한 HTML 메일을 보내십시오. 3. Sendgrid와 같은 트랜잭션 메일 서비스를 사용하여 신뢰성 및 분석 기능을 향상시킵니다. 이러한 방법을 사용하면 이메일이받은 편지함에 도달 할뿐만 아니라 수신자를 유치 할 수 있습니다.

PHP 다차원 배열에서 총 요소 수를 계산하는 방법은 무엇입니까?PHP 다차원 배열에서 총 요소 수를 계산하는 방법은 무엇입니까?May 15, 2025 pm 09:00 PM

PHP 다차원 어레이에서 총 요소 수를 계산하는 것은 재귀 적 또는 반복적 인 방법을 사용하여 수행 할 수 있습니다. 1. 재귀 방법은 배열을 가로 지르고 중첩 배열을 재귀 적으로 처리함으로써 계산됩니다. 2. 반복 방법은 스택을 사용하여 깊이 문제를 피하기 위해 재귀를 시뮬레이션합니다. 3. Array_Walk_Recursive 함수도 구현할 수 있지만 수동 계산이 필요합니다.

PHP에서 DO-While 루프의 특성은 무엇입니까?PHP에서 DO-While 루프의 특성은 무엇입니까?May 15, 2025 pm 08:57 PM

PHP에서, do-while 루프의 특성은 루프 본체가 적어도 한 번 실행되도록하고 조건에 따라 루프를 계속할지 여부를 결정하는 것입니다. 1) 조건부 점검 전에 루프 본체를 실행하며, 사용자 입력 확인 및 메뉴 시스템과 같이 작업을 적어도 한 번 수행 해야하는 시나리오에 적합합니다. 2) 그러나, do-while 루프의 구문은 초보자들 사이에서 혼란을 야기 할 수 있으며 불필요한 성능 오버 헤드를 추가 할 수 있습니다.

PHP에서 문자열을 해시하는 방법은 무엇입니까?PHP에서 문자열을 해시하는 방법은 무엇입니까?May 15, 2025 pm 08:54 PM

PHP의 효율적인 해싱 스트링은 다음 방법을 사용할 수 있습니다. 1. 빠른 해싱에 MD5 기능을 사용하지만 비밀번호 저장에는 적합하지 않습니다. 2. SHA256 기능을 사용하여 보안을 향상시킵니다. 3. Password_hash 함수를 사용하여 비밀번호를 처리하여 최고 보안과 편의성을 제공하십시오.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.