用PHP上传实现只上传图片并保持原文件名
需要有登录验证,jpg图片(不大于300kb)仅限于上传到指定目录,php文件不能有权限操作和浏览目录功能,上传的图片重名覆盖。...
需要有登录验证,jpg图片(不大于300kb)仅限于上传到指定目录,php文件不能有权限操作和浏览目录功能,上传的图片重名覆盖。
展开
1个回答
展开全部
$face=$_FILES['face'];
if($face['size']<0){
echo '上传文件为空';
exit;
}
//判断文件格式
$arr=array('jpg','png','gif')
$arrs=explode('.',$face['name']);
$ext=$arrs[count($arrs)-1];
if(!in_array($ext,$arr)){
echo '文件格式错误!';
exit;
}
//判断上传大小
if($face['size']>307200){
echo '文件大小已超出限制范围!';
exit;
}
$dir='faces';//文件上传目录
$upload=copy($face['tmp_name'],$dir.'/'.$face['name']);
if($upload=false){
echo '文件上传失败!';
exit;
}
追问
$arrs=explode('.',$face['name']);
是不是有错误?
我不懂php,您能否把完整的可以直接上传使用的源码发出来
追答
/*
* 功 能:单文件上传upload_imag
* 返回值类型:数组
* 参 数:$face:获取上传文件信息,必填
$ext_arr:指定文件上传类型,为数组,可选
$size:限制上传文件大小默认2M,可选
$dir:文件上传的目录名称,可选
$name: 文件名,留空则随机取名不带后缀名 可选
*/
function upload_imag($face,$dir='faces',$name='',$ext_arr=array('jpg','png','gif'),$size=2097152){
if($face['size']>0){
if(!is_dir($dir)){
mkdir($dir);
}
$arrs=explode('.',$face['name']);
$ext=$arrs[count($arrs)-1];
if(!in_array($ext,$ext_arr)){
echo '文件格式错误!';
exit;
}
if($face['size']>$size){
echo '文件大小已超出限制范围!';
exit;
}
if(empty($name)){
$newname=date('YmdHis',time()).rand(1000,9999).'.'.$ext;
}else{
$newname=$name.'.'.$ext;
}
$upload_face=copy($face['tmp_name'],$dir.'/'.$newname);
if($upload_face=false){
echo '文件上传失败!';
exit;
}
return $newname;//上传成功,返回文件名
}else{
return '';//上传文件为空,则返回空
}
}
这是php上传文件封装的函数,你看参数说明填写吧。望采纳!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询