溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php文件上傳代碼如何寫

發(fā)布時間:2020-09-17 10:38:41 來源:億速云 閱讀:138 作者:小新 欄目:編程語言

小編給大家分享一下php文件上傳代碼如何寫,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

php文件上傳代碼怎么寫

在初學(xué)php的時候,我們無法理解php文件上傳的代碼,以及上傳的邏輯,以下代碼從初學(xué)者的角度編寫,希望對大家有幫助!

需要用到的知識:

超級全局數(shù)組:$_FILES

$_FILES['myfile']['name']的值是:客戶端文件系統(tǒng)的文件名稱

$_FILES['myfile']['type']的值是:客戶端傳遞的文件類型

$_FILES['myfile']['size']的值是:文件的字節(jié)大小

$_FILES['myflie']['tmp_name ']的值是:文件被上傳后在服務(wù)器存儲的臨時全路徑

$_FILES['myfile']['error']的值是:文件上傳的錯誤代碼

存儲在$_FILES['myfile']['error']中的值

值為0: 表示沒有發(fā)生任何錯誤

值為1: 表示上傳文件的大小超出了約定值。文件大小的最大值在PHP配置文件中指定的,指令是:upload_max_filesize

值為2: 表示上傳文件大小超過了HTML表單隱藏域?qū)傩缘腗AX_FILE_SIZE元素所指定的最大值

值為3: 表示文件只被部分上傳

值為4:表示沒有上傳任何文件

值為6: 表示找不到臨時文件夾

值為7: 表示文件寫入失敗

錯誤值對應(yīng)常量

UPLOAD_ERR_OK : 對應(yīng)值0

UPLOAD_ERR_INI_SIZE : 對應(yīng)值1

UPLOAD_ERR_FORM_SIZE : 對應(yīng)值2

UPLOAD_ERR_PARTIAL :  對應(yīng)值3

UPLOAD_ERR_NO_FILE : 對應(yīng)值4

UPLOAD_ERR_NO_TMP_DIR : 對應(yīng)值6

UPLOAD_ERR_CANT_WRITE : 對應(yīng)值7

upload.html 代碼如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圖片上傳</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file"  name="pic"/>
        <!--通過表單限制上傳文件的大小 一定要在上傳按鈕前 大小以字節(jié)為主-->
        <input type="hidden" name="MAX_FILE_SIZE"  value="8388608"/>
        <input type="submit" name="sub" value="上傳" />
    </form>
</body>
</html>

upload.php 代碼如下

<?php
//var_dump($_FILES);
//exit;
//判斷是否是文件上傳
$file = $_FILES;
//第一個pic 是input 中的name值
if(is_uploaded_file($file['pic']['tmp_name']))
{
    //聲明允許上傳的文件類型
    $allowType = ['image/png','image/jpeg','image/gif','image/jpg'];
    //正在上傳的文件的類型
    $type = $file['pic']['type'];
//    echo $type;
    //判斷類型是否是允許的類型
    if(!in_array($type,$allowType))//檢查數(shù)組中是否存在某個值,返回布爾型
    {
       exit('上傳類型有誤');
    }
    //判斷文件上傳的大小
    if($file['pic']['size'] > 1024 * 1024 * 8) //以字節(jié)為主 1024*1024是1M
    {
        exit('上傳的文件太大');
    }
    //設(shè)置新文件名
    $filename = date('YmdHis',strtotime('now')).rand(1000,9999);
    //獲取上傳文件的后綴名
    $name = $file['pic']['name'];
    //得到文件名字符串
    $filestr      = explode('.',$name);
    $ext = array_pop($filestr);
    //拼接新文件名
    $newfilename = $filename.'.'.$ext;
    //拼接上傳文件的路徑
    $path = './uploads/';
    //絕對路徑
    $abspath = $path.$newfilename;
    if(move_uploaded_file($file['pic']['tmp_name'],$abspath))
    {
        echo '上傳成功';
    }else{
        echo '上傳失敗';
    }
}

看完了這篇文章,相信你對php文件上傳代碼如何寫有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI