用PHP上传实现只上传图片并保持原文件名

需要有登录验证,jpg图片(不大于300kb)仅限于上传到指定目录,php文件不能有权限操作和浏览目录功能,上传的图片重名覆盖。... 需要有登录验证,jpg图片(不大于300kb)仅限于上传到指定目录,php文件不能有权限操作和浏览目录功能,上传的图片重名覆盖。 展开
 我来答
斌starin
推荐于2016-04-10 · TA获得超过140个赞
知道小有建树答主
回答量:162
采纳率:100%
帮助的人:120万
展开全部
$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上传文件封装的函数,你看参数说明填写吧。望采纳!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式