php實現文件上傳

今天用PHP實現一個圖片上傳功能。踩了幾個坑,記錄下~php

前臺代碼html

<form action="index.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="upload">
</form>

方法要用post,必須加上enctype="multipart/form-data"。不然文件沒法上傳

後臺php部分數組

 

<?php
    $name=$_FILES["file"]["name"];
    $type=$_FILES["file"]["type"];
    $size=$_FILES["file"]["size"];
    $error=$_FILES["file"]["error"];
    $dir='upload/';
    //upload error
    if($error>0){
        echo 'fail to upload';
        exit;
    }
    //type select error
    if($type=='image/gif' || $type == "image/jpeg" || $type == "image/pgpeg" || $type == "image/png"){

        //size larger than 30kb
        if($size>30*1024){
            echo 'uploaded is more than 30kb';
            exit;
        }

        //make $dir if not exist
        if(!file_exists($dir)){
            mkdir('upload/');
        }

        //if upload is exist

        if(file_exists('upload/'.$name)){
            echo 'file exist';
        }else{
              move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$name);
              echo "upload file complete";
        }
    }else{
        echo 'please send the right files';
        exit;
    }
?>

 

 1.文件上傳到臨時目錄,腳本執行完以後,臨時文件就會被刪除掉。。(找了很久沒找到臨時文件,哭)。因此用move_uploaded_file 把臨時文件保存到另外一個文件下post

   2. $error>0就是上傳出錯,報啥錯就放個參考的地址http://php.net/manual/zh/features.file-upload.errors.phpspa

 3.$_FILES["file"] 是個數組,包含'size','name','type','tmp_name'等數據,分別表示上傳的文件大小,名字,類型,臨時文件名。.net

   4. file_exists 判斷文件是否存在code

 5.mkdir新建目錄。orm

嘿嘿,大概就這些東西了。htm

相關文章
相關標籤/搜索