PHP上传图片

刚接触后台:做了一个php的图片文件上传

第一步:

首先,注意文件上传只能使用POST请求,并且要设置响应的属性,红色部分的属性必须添加,否则不能是上传,html中的表单

<form action="demo_upload.php" method="POST" enctype="multipart/form-data">
<!-- 、文件上传的表单区域 -->
<input type="file" name="file">
<input type="submit" value="提交" />

</form>


第二步:file文件的接收的几个数组属性,在提交的时候,我们一定会接收到file文件,怎么去判断file文件的相关内容,就必须值file文件的属性

我们通过$_FILES["file"]获取相关文件的属性信息,打印出来如下

var_dump($_FILES['file']);

array(5) {
  ["name"]=>
  string(8) "aaaa.jpg"   //名字
  ["type"]=>             //文件的格式
  string(10) "image/jpeg"
  ["tmp_name"]=>         //后台的临时的名字
  string(25) "D:\apache\tmp\php94D4.tmp"
  ["error"]=>            //错误信息
  int(0)
  ["size"]=>             //大小
  int(20915)
}

第三步:封装一个工具类,用来上传文件;



<?php
/*
*上传文件的信息
*/
function upload($file,$allow = array('gif','png','jpg','jpeg')){
if(!is_array($file)){  //不是数组,就不存在上传的文件
return array(false,"当前不是上传的文件信息");
}
//判读上传文件的错误信息
$errorinfo = '';
switch($file['error']){
case 1:
$errorinfo = "文件超过服务器的限制";
  break;
   case 2:
  $errorinfo = "文件超过浏览器允许的大小";
  break;
   case 3:
  $errorinfo = "文件只上传了一部分";
  break;
   case 4:
$errorinfo = "没有选中要上传的文件";
  break;
   case 6:
  $errorinfo = "找不到服务器的临时目录";
  break;
case 7:
  $errorinfo = "文件上传的路径不可写";
  break;

}
//说明出错了
if($errorinfo){
return array(FALSE,$errorinfo);
}

//没有文件的错误信息,表示没有问题,接下来就要获取文件名字
$extension = getFileExtendtion($file['name']);

//判断文件是否有后缀名字
if(!$extension){
return array(FALSE,'文件没有后缀名');
}

if(!in_array($extension,$allow)){
return array(FALSE,'文件格式不支持');
}


//重新命名
$filename = getRandonFilename();


$filename .='.'.$extension;
//移动文件,第二个参数便是文件放置的路径,这里直接写的名字,就和次代码文件一直
if(!@move_uploaded_file($file['tmp_name'],$filename)){
return  array(FALSE,"文件上传失败");
}

return $filename;
}



//截取后缀的名字
function getFileExtendtion($filename){

if(strrpos($filename,'.')){

return substr($filename,strrpos($filename,'.')+1);


}


return FALSE;
}



        //获取随机名字
function getRandonFilename(){
$filename= '';
$filename .= date('YmdHis');
$str = 'abcdefghijklmnopqrxtuvwxyfjiojjkjklz';
for($i = 0;$i < 6;$i++){
$filename .= $str[mt_rand(0,25)];
}
return $filename;
}

?>


第四步:上传


<?php


//设置浏览器解析编码格式
//header('Content-type:text/html;charset=utf-8');
header("Content-type: text/html; charset=gb2312"); 
include_once 'upload.php';

echo "<pre>"; 

        //这是个人打印的信息

        var_dump($_POST);

var_dump($_FILES['file']);

        //上传文件判读是否选中了文件
if(empty($_FILES['file'])){
die('没有上传文件');
}

        //判断上传文件返回的信息
$res =upload($_FILES['file']);
if(is_array($res)){
exit($res[1]);
}else{
echo '文件上传成功,文件路径为:' . $res;
}
?>



完毕,thank you!


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值