PHP文件上传

13 篇文章 0 订阅

今天学习了一下PHP的文件上传,这块的内容,简单的通过from表单的方式上传的。

因为不熟悉,踩了不少坑,废话不说,直接上代码

<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上传文件:
<input type="file" name="upfile">
<br>
<input type="submit" value="上传">
</form>

1.判断是否有文件函数         is_uploaded_file()

这里有个问题我直接判断

if(is_uploaded_file($_FILES['upfile']['tmp_name'])){

但是直接执行的时候报错说是没有定义的变量  $_FILES ,是因为我刚进来的时候还没上选择操作,文件不存在,我加了一个判断

if($_FILES && is_uploaded_file($_FILES['upfile']['tmp_name'])){

如果前面不存在,后面直接就不用执行,就好了。

2.获取上传的一些参数

  $upfile = $_FILES["upfile"];
    //获取数组里面的值
    $name = $upfile["name"]; //上传文件的文件名
    $type = $upfile["type"]; //上传文件类型
    $size = $upfile["size"]; //上传文件大小
    $tmp_name = $upfile["tmp_name"];  //上传文件的临时存放路径

3.判断文件类型

//判断是否为图片
    switch ($type){
        case 'image/pjpeg':$oktype=true;
        break;
        case 'image/jpeg':$oktype=true;
        break;
        case 'image/gif':$oktype=true;
        break;
        case 'image/png':$oktype=true;
        break;
    }

4.上传到指定目录

 if ($oktype){
        /**
         * 0:文件上传成功<br/>
         * 1:超过了文件大小,在php.ini文件中设置<br/>
         * 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
         * 3:文件只有部分被上传<br/>
         * 4:没有文件被上传<br/>
         * 5:上传文件大小为0
         */
        $error = $upfile["error"]; //上传后返回的值
        echo  "=======================<br/>";
        echo '上传的文件名'.$name."<br/>";
        echo "上传文件类型是:".$type."<br/>";
        echo "上传文件大小是:".$size."<br/>";
        echo "上传后系统返回的值是:".$error."<br/>";
//        echo "上传文件的临时存放路径是:".$tmp_name."<br/>";

        //上传文件的文件名
        $imageFile = 'imageFile';

        //判断是否有些文件目录
        if(file_exists($imageFile)){
           //有些目录直接上传  move_uploaded_file  
            move_uploaded_file($tmp_name,"./$imageFile/".$name);
        }else{
        //  file_put_contents($imageFile,null);   创建文件
        //  madir 创建文件   第一个参数是文件目录,第二个读写格式
            mkdir ('./'.$imageFile,0777,true);
            move_uploaded_file($tmp_name,"./$imageFile/".$name);
        }

        $destination = "./$imageFile/".$name;

        echo "开始移动上传文件<br/>";

//        echo $destination; die;

        echo "================<br/>";
        echo "上传信息:<br/>";

        if($error==0){
            echo "文件上传成功啦!";
            echo "<br>图片预览:<br>";
            echo "<img src=".$destination.">";
            //echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">";
            }elseif ($error==1){
            echo "超过了文件大小,在php.ini文件中设置";
        }elseif ($error==2){
            echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
        }elseif ($error==3){
            echo "文件只有部分被上传";
        }elseif ($error==4){
            echo "没有文件被上传";
        }else{
            echo "上传文件大小为0";
        }
    }else{
        echo "请上传jpg,gif,png等格式的图片!";
        }

运行即可上传文件到imageFile目录,大功告成!!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值