PHP上传图片到服务器上,并把它的路径存储在数据库的一个字段里 求助各位大佬,上传图片只在本地做过,服务器上完全搞不懂 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最简单的就是 form 表单上传。<form action="doAction1.php" method="post" enctype="multipart/form-data">请选择您要上传的文件:<input type="file" name='myFile' /><input type="submit" value="上传文件" /></form>请求界面doAcion1.phpheader('content-type:text/html;charset=utf-8');$fileInfo=$_FILES['myFile'];$maxSize=2097152;//允许的最大值$allowExt=array('jpeg','jpg','png','gif','wbmp');$flag=true;//检测是否为真实图片类型//1.判断错误号if($fileInfo['error']==0){ //判断上传文件的大小 if($fileInfo['size']>$maxSize){ exit('上传文件过大'); } //$ext=strtolower(end(explode('.',$fileInfo['name']))); $ext=pathinfo($fileInfo['name'],PATHINFO_EXTENSION); if(!in_array($ext,$allowExt)){ exit('非法文件类型'); } //判断文件是否是通过HTTP POST方式上传来的 if(!is_uploaded_file($fileInfo['tmp_name'])){ exit('文件不是通过HTTP POST方式上传来的'); } //检测是否为真实的图片类型 if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ exit('不是真正图片类型'); } } $path='uploads'; if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } //确保文件名唯一,防止重名产生覆盖 $uniName=md5(uniqid(microtime(true),true)).'.'.$ext; //echo $uniName;exit; $destination=$path.'/'.$uniName; if(@move_uploaded_file($fileInfo['tmp_name'],$destination)){ echo '文件上传成功'; }else{ echo '文件上传失败'; }}else{ //匹配错误信息 switch($fileInfo['error']){ case 1: echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: echo '超过了表单MAX_FILE_SIZE限制的大小'; break; case 3: echo '文件部分被上传'; break; case 4: echo '没有选择上传文件'; break; case 6: echo '没有找到临时目录'; break; case 7: case 8: echo '系统错误'; break; }} 你这个问题话,主要是路径的问题搞不懂吧,一般$path='uploads';uploads前面没有加/的话,文件是保存在你项目入口文件平行的那级的uploads目录,如果前面加/的话一般是保存在linux根目录下,/uploads这个目录里面的,保存路径的时候保存相对路径即可,这样的话附件的位置可以方便的挪动了! smarty遍历数组问题,在线急等 这个功能需要php后台吗? 错误提示:syntax error, unexpected '(', expecting T_VARIABLE or '$ php 大家帮看下这是什么论坛程序啊?急 这个网站采用的是什么程序? 怎么 学习 php 求杰奇1.7免费版的采集规则 apache+nginx url重写问题 从PHP 从服务器下载Excel 乱码 微信公众号开发,图文素材上传接口添加小程序卡片报错45166,添加小程序文字、图片链接无跳转效果 php项目怎么配置mysql
请选择您要上传的文件:<input type="file" name='myFile' />
<input type="submit" value="上传文件" />
</form>请求界面
doAcion1.php
header('content-type:text/html;charset=utf-8');
$fileInfo=$_FILES['myFile'];
$maxSize=2097152;//允许的最大值
$allowExt=array('jpeg','jpg','png','gif','wbmp');
$flag=true;//检测是否为真实图片类型
//1.判断错误号
if($fileInfo['error']==0){
//判断上传文件的大小
if($fileInfo['size']>$maxSize){
exit('上传文件过大');
}
//$ext=strtolower(end(explode('.',$fileInfo['name'])));
$ext=pathinfo($fileInfo['name'],PATHINFO_EXTENSION);
if(!in_array($ext,$allowExt)){
exit('非法文件类型');
}
//判断文件是否是通过HTTP POST方式上传来的
if(!is_uploaded_file($fileInfo['tmp_name'])){
exit('文件不是通过HTTP POST方式上传来的');
}
//检测是否为真实的图片类型
if($flag){
if(!getimagesize($fileInfo['tmp_name'])){
exit('不是真正图片类型');
}
}
$path='uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}
//确保文件名唯一,防止重名产生覆盖
$uniName=md5(uniqid(microtime(true),true)).'.'.$ext;
//echo $uniName;exit;
$destination=$path.'/'.$uniName;
if(@move_uploaded_file($fileInfo['tmp_name'],$destination)){
echo '文件上传成功';
}else{
echo '文件上传失败';
}
}else{
//匹配错误信息
switch($fileInfo['error']){
case 1:
echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
break;
case 2:
echo '超过了表单MAX_FILE_SIZE限制的大小';
break;
case 3:
echo '文件部分被上传';
break;
case 4:
echo '没有选择上传文件';
break;
case 6:
echo '没有找到临时目录';
break;
case 7:
case 8:
echo '系统错误';
break;
}
}