溫馨提示×

溫馨提示×

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

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

PHP上傳文件

發(fā)布時間:2020-07-16 01:05:19 來源:網(wǎng)絡 閱讀:604 作者:myluoliang 欄目:web開發(fā)

up.php上傳文件

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>上傳v0.1 - 紫游</title>
</head> 
<body align = "center"> 
上傳默認2M <br /> 
根據(jù)大小命名+原始名稱,覆蓋文件。<br /> 
類型"jpg","png","ico","bmp","gif","tif","tga","txt","zip","rar","7z","gz","mp3","wav","m4a","mp4","3gp"<br /> 
<br /> 
<form enctype="multipart/form-data" method="post">
<label for="file">請選擇上傳的文件</label><br /> 
<input type="file" name="file" size="40" />
<input type="submit" name="submit" value="確定" />
</form><br />
</body>
<?php
//例子說明:
//該例子只是簡單演示了文件上傳的流程,請勿直接用于實際項目
//該例子中缺少對用戶權限的檢查
//如果上傳后的文件沒有做重命名,則需要做文件重名時的邏輯處理
//寫入數(shù)據(jù)表文件信息由于涉及到數(shù)據(jù)庫操作,暫略。寫入數(shù)據(jù)表的信息應該包括文件上傳的時間,上傳的用戶ID以及存儲的位置,以便清理上傳無效的文件以及文件過期管理等
//無提交校驗,要防止遠程提交,可以在表單生成頁面產(chǎn)生一個會話ID,然后在upload.php頁面做校驗以防止遠程提交
//配置php.ini文件(以20M以下大小的文件為例) 
//查找以下選項并修改-> 
//file_uploads = On ;
//打開文件上傳選項 
//upload_max_filesize = 20M ;
//上傳文件上限 
//如果要上傳比較大的文件,必須把服務器緩存上限調(diào)大,把腳本最大執(zhí)行時間變長 
//post_max_size = 20M ;post上限 
//max_execution_time = 1800 ; 腳本最大執(zhí)行時間 
//max_input_time = 1800 ; 腳本請求解析的最大時間
//memory_limit = 128M ;(128MB)內(nèi)存上限



//包含端口號的完整地址
$urlduankou = 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 

//只取路徑
$urllujing='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; 
$urllujing1 =  dirname($urllujing);

//取服務器IP端口
$SERVERIPport = $_SERVER["SERVER_ADDR"].':'.$_SERVER["SERVER_PORT"]; 

//文件存儲路徑
$file_path="upload/";
//664權限為文件屬主和屬組用戶可讀和寫,其他用戶只讀。
if(is_dir($file_path)!=TRUE) mkdir($file_path,0664) ;
//定義允許上傳的文件擴展名
$ext_arr = array("jpg","png","ico","bmp","gif","tif","tga","txt","zip","rar","7z","gz","mp3","wav","m4a","mp4","3gp");

if (empty($_FILES) === false) {
    //判斷檢查
    if($_FILES['file']['size'] > 2097152){
        exit("對不起,您上傳的照片超過了2M=2097152。");
    }
    if($_FILES["file"]["error"] > 0){
        exit("錯誤:".$_FILES["file"]["error"]);
        //值:0; 沒有錯誤發(fā)生,文件上傳成功。   
        //值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。   
        //值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。   
        //值:3; 文件只有部分被上傳。   
        //值:4; 沒有文件被上傳。
    }
    //上傳的文件名名稱
    $FILESname = $_FILES["file"]["name"];
    //文件字節(jié)大小
    $FILESsize = $_FILES['file']['size'];

//echo "名稱: " . $_FILES["file"]["name"] . "<br />";
//echo "類型: " . $_FILES["file"]["type"] . "<br />";
//echo "大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
//echo "臨時名稱: " . $_FILES["file"]["tmp_name"]."<br /> ";

    //獲得文件擴展名
    $temp_arr = explode(".", $FILESname);
    $file_ext = array_pop($temp_arr);
    $file_ext = trim($file_ext);
    $file_ext = strtolower($file_ext);
//echo $FILESsize."<br /> ";
//echo $file_ext."<br /> ";
    //檢查擴展名
    if (in_array($file_ext, $ext_arr) === false) {
        exit("上傳的文件類型不支持。");
    }
    //以時間戳重命名文件
    $new_name = time().".".$file_ext;
    //根據(jù)大小加名稱
    $size_name = $FILESsize."_".$FILESname;
    //將文件移動到存儲目錄下
    //move_uploaded_file($_FILES["file"]["tmp_name"],"$file_path" . $new_name);
    move_uploaded_file($_FILES["file"]["tmp_name"],"$file_path" . $size_name);
    //向數(shù)據(jù)表寫入文件存儲信息以便管理
    echo "\n文件上傳成功!".$SERVERIPport."","<br /> \n";
    echo 'URL:<a href="'.$urllujing1."/".$file_path.$size_name.'" target="_blank">'.$urllujing1."/".$file_path.$size_name.'</a><br />';  
    exit;
} else {
    echo "上傳文件不正確,請檢查。";
}

?>


向AI問一下細節(jié)

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

AI