PHP檔案上傳及下載源碼,_PHP教程

來源:互聯網
上載者:User

PHP檔案上傳及下載源碼,


  一、檔案上傳

  前台頁面:

DOCTYPE html><html><head>    <meta charset="utf-8">    <title>檔案上傳title>head><body><div>    <form method="post" action="upload.php" enctype="multipart/form-data" >        使用者名稱<input type="text" name="username">input>        <br>        檔案簡單介紹<br><textarea name="fileintro" rows="8" cols="50">textarea>        <br>選擇要上傳的檔案<br><input type="file" name="myfile">input><br>        <input type="submit" value="上傳檔案">input>    form>div>body>html>

  幕後處理:

php//接收提交頁面傳送的相關資訊$name = $_POST['username'];$intro = $_POST['fileintro'];//$_FILES中存放著檔案的相關資訊// echo "
";// print_r($_FILES);// echo "
";//可以在這裡對檔案大小進行限制/*$filesize = $_FILES['myfile']['size'];if($filesize>2*1024*1024){ echo "檔案過大,不能上傳"; exit();}*/ //可以對檔案類型進行限制 /*$filetype = $_FILES['myfile']['type']; if($filetype!='image/jpg'&&$filetype!='application/pdf'){ echo "檔案類型只能是jpg和pdf"; exit(); }*/ if (is_uploaded_file($_FILES['myfile']['tmp_name'])) { //把檔案轉存到你希望存放的目錄 $uploaded = $_FILES['myfile']['tmp_name']; //每個使用者動態建立一個檔案夾 $userpath = $_SERVER['DOCUMENT_ROOT']."/up/".$name; //判斷該使用者是否已經有檔案夾 if(!file_exists($userpath)){ mkdir($userpath); } //防止同一使用者上傳同名檔案,可在檔案中新增時間戳記。 //$moveto = $userpath."/".time().$_FILES['myfile']['name']; //或者對檔案名稱進行修改,但是需要使用字串處理截得檔案尾碼名 $truename = $_FILES['myfile']['name']; $moveto = $userpath."/".time().substr($truename,strrpos($truename,".")); if(move_uploaded_file($uploaded,iconv("utf-8", "gb2312", $moveto))){ echo "上傳檔案".$_FILES['myfile']['name']."成功"; }else{ echo "上傳檔案".$_FILES['myfile']['name']."失敗"; }}else{ echo "上傳檔案".$FILES['myfile']['name']."失敗";}?>

  二、檔案下載:

  單檔案下載:

 php    function down_file($file_name,$file_path){    //$file_name = iconv("uft-8","gb2312",$file_name);    //如果檔案名稱是中文,需要對中文名稱轉碼gb2312    //要下載的檔案讀取到伺服器的記憶體中    //伺服器返迴文件資料給瀏覽器    //瀏覽器將檔案寫入使用者指定的位置    //1.判斷檔案是否存在    if(!file_exists($file_name)){        echo "111";        return ;    }    $fp = fopen($file_name,"r");    $file_size = filesize($file_name);    //擷取檔案大小    //可通過file_size限制瀏覽器下載檔案大小。    //返回的檔案    header("Content-type:application/octet-stream");    //按位元組大小返回    header("Accept-Ranges:bytes");    //返迴文件大小    header("Accept-Length:$file_size");    //用戶端彈出對話方塊,對應的檔案名稱    header("Content-Disposition:attachment;filename=".$file_name);    $buffer = 1024;      //定義緩衝區    //為了下載的安全,最好使用檔案位元組讀取計數器    $file_count = 0;    //feof用於判斷檔案是否讀取到文檔尾    while(!feof($fp) && ($file_size-$file_count>0)){    $file_data = fread($fp,$buffer);    //統計讀了多少個位元組    $file_count+$buffer;    echo $file_data;       //把部分資料會送給瀏覽器    }    fclose($fp);    //關閉檔案    }?>

  多個檔案下載:

  DownList.php:

down

down

down

down

  downprocess.php:

php    $filename = $_REQUEST['filename'];    function down_file($file_name){    if(!file_exists($file_name)){        echo "111";        return ;    }    $fp = fopen($file_name,"r");    $file_size = filesize($file_name);    header("Content-type:application/octet-stream");    //按位元組大小返回    header("Accept-Ranges:bytes");    //返迴文件大小    header("Accept-Length:$file_size");    //用戶端彈出對話方塊,對應的檔案名稱    header("Content-Disposition:attachment;filename=".$file_name);    $buffer = 1024;      //定義緩衝區    $file_count = 0;    //feof用於判斷檔案是否讀取到文檔尾    while(!feof($fp) && ($file_size-$file_count>0)){        $file_data = fread($fp,$buffer);        //統計讀了多少個位元組        $file_count+$buffer;        echo $file_data;           //把部分資料會送給瀏覽器        }    fclose($fp);    }    down_file($filename);?>

http://www.bkjia.com/PHPjc/1131344.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1131344.htmlTechArticlePHP檔案上傳及下載源碼, 一、檔案上傳 前台頁面: ! DOCTYPE html html head meta charset ="utf-8" title 檔案上傳 / title / head body div form method ="post" a...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.