<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    forget and forget

    能吃能睡是福;能忘是大福......

    posts - 39, comments - 26, trackbacks - 0, articles - 10
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    php上傳單個(gè)文件

    Posted on 2006-06-08 22:09 橘子 閱讀(1028) 評(píng)論(0)  編輯  收藏 所屬分類: WEB開發(fā)

    ??? PHP上傳文件的問題:
    一:1、上傳單個(gè)文件的時(shí)候。在表單頁(yè)面設(shè)置文件輸入域,<input name="userfile" type="file" />然后表單要加入<form enctype="multipart/form-data" action="post.php" method="post">這個(gè)屬性,這是告訴瀏覽器我要上傳文件的屬性,一定要加上。
    ??? 2、設(shè)置好了表單,接下來(lái)的事就是讀取表單的變量,如果你還定義了其他的變量,那么php使用$_POST來(lái)讀出,如:$uservar=$_POST["uservar"],然而文件是存在$_FILES中,具體見下面:
    ?
    ? * $_FILES['userfile']['name'] 客戶端機(jī)器文件的原名稱。
    ? ?* $_FILES['userfile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”。
    ? ?* $_FILES['userfile']['size'] 已上傳文件的大小,單位為字節(jié)。
    ? ?* $_FILES['userfile']['tmp_name'] 文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名。
    ? ?* $_FILES['userfile']['error'] 和該文件上傳相關(guān)的錯(cuò)誤代碼

    ? 1. 值:0; 沒有錯(cuò)誤發(fā)生,文件上傳成功。
    ? 2. 值:1; 上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。
    ? 3. 值:2; 上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。
    ? 4. 值:3; 文件只有部分被上傳。
    ? 5. 值:4; 沒有文件被上傳。
    3、完成上傳過(guò)程。示例代碼:
    (1)
    <?php
    $upload_file=$_FILES['userfile']['tmp_name'];
    $upload_file_name=$_FILES['userfile']['name'];
    if($upload_file){
    ?$file_size_max = 20000000;// 1M限制文件上傳最大容量(bytes)
    ?$store_dir = "attfile/";// 上傳文件的儲(chǔ)存位置
    ?$accept_overwrite = 1;//是否允許覆蓋相同文件
    ?// 檢查文件大小
    ?if ($upload_file_size > $file_size_max) {
    ??echo "對(duì)不起,你的文件容量大于規(guī)定";
    ??exit;
    ?}
    ?// 檢查讀寫文件
    ?if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
    ??echo?? "存在相同文件名的文件";
    ??exit;
    ?}
    ?//復(fù)制文件到指定目錄
    ?if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
    ??echo "復(fù)制文件失敗";
    ??exit;
    ?}
    }
    echo?? "<p>你上傳了文件:";
    echo $_FILES['userfile']['name'];
    echo "<br>";
    //客戶端機(jī)器文件的原名稱。
    Echo?? "文件的 MIME 類型為:";
    echo $_FILES['userfile']['type'];
    //文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”。
    echo "<br>";

    Echo?? "上傳文件大小:";
    echo $_FILES['userfile']['size'];
    //已上傳文件的大小,單位為字節(jié)。
    echo "<br>";

    Echo?? "文件上傳后被臨時(shí)儲(chǔ)存為:";
    echo $_FILES['userfile']['tmp_name'];
    //文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名。
    echo "<br>";

    $Erroe=$_FILES['userfile']['error'];
    switch($Erroe){
    ?case 0:
    ?Echo?? "上傳成功"; break;
    ?case 1:
    ?Echo?? "上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值."; break;
    ?case 2:
    ?Echo?? "上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。";?? break;
    ?case 3:
    ?Echo?? "文件只有部分被上傳";break;
    ?case 4:
    ?Echo?? "沒有文件被上傳";break;
    }
    ?>
    (2)<?php
    $uploaddir= '../attfile/';//設(shè)置上傳的文件夾地址
    $FILES_EXT=array('.gif','.jpg','.bmp');//設(shè)置允許上傳文件的類型
    $MAX_SIZE = 20000000;//設(shè)置文件上傳限制20000000byte=2M
    for ($i=0;$i<count($userfile);$i++){
    ?$FILES_NAME=$_FILES['userfile']['name'][$i];//客戶端文件名
    }
    //echo $FILES_NAME;
    //取出文件后綴名,strrpos()從標(biāo)記開始前字節(jié)個(gè)數(shù)(不算標(biāo)記),substr()顯示從第strrpos()之后的字符
    $file_ext=substr($FILES_NAME,strrpos($FILES_NAME,"."));
    //echo $file_ext;
    //檢查文件大小
    if($_FILES['userfile']['size']>$MAX_SIZE){
    ?echo "文件大小超程序允許范圍!";
    ?exit;
    }
    //檢查文件類型
    if(in_array($file_ext, $FILES_EXT)){
    ?$_FILES['userfile']['name']=date("YmdHis").rand().$file_ext;
    ?$uploadfile = $uploaddir.$_FILES['userfile']['name'];//上傳后文件的路徑及文件名
    ?//將上傳后的路徑寫入到數(shù)據(jù)庫(kù)中

    ?//用move函數(shù)生成臨時(shí)文件名,并按照 $_FILES['userfile']['name']上傳到$uploaddir下
    ?if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    ??print "\n上傳成功!";
    ?} else {
    ??print "上傳錯(cuò)誤!? 以下是上傳的信息:\n";
    ??print_r($_FILES);
    ?}
    }
    else{
    ?echo "{$file_ext}不是允許上傳的文件類型!";
    ?exit;
    }
    ?>



    小技巧>>1、當(dāng)在提交時(shí),希望確認(rèn)是否要提交可以在<form>里如這樣加入:<form onsubmit="return confirm('你真的要提交嗎?')">
    2、在php里希望返回時(shí)所有在文本框里的東西都保留可以這樣:<a href=javascript:history.back(1)>重新來(lái)過(guò)</a>。

    主站蜘蛛池模板: 国产成人A在线观看视频免费| 成人在线免费视频| 99人中文字幕亚洲区| 亚洲成人精品久久| 色噜噜综合亚洲av中文无码| 久久久久久av无码免费看大片| 国内精品免费在线观看| 精品熟女少妇av免费久久| 皇色在线视频免费网站| 高清在线亚洲精品国产二区| 狠狠亚洲狠狠欧洲2019| 国产精品久久亚洲不卡动漫| 黄床大片30分钟免费看| 84pao强力永久免费高清| 亚洲黄色三级视频| 一级特黄色毛片免费看| A级毛片内射免费视频| 亚洲娇小性色xxxx| 国产又黄又爽又猛的免费视频播放| 亚洲乱码中文字幕久久孕妇黑人| 精品亚洲AV无码一区二区三区| 久久精品无码专区免费| 亚洲AV无码专区国产乱码电影| 亚洲精品123区在线观看| 一级成人a免费视频| 免费国产在线观看不卡| 国产亚洲精品资在线| 一级毛片免费在线观看网站| 亚洲国产成人乱码精品女人久久久不卡| 国产老女人精品免费视频| 亚洲乱亚洲乱妇24p| 亚洲欧美在线x视频| sss日本免费完整版在线观看| 精品久久亚洲一级α| 国产卡二卡三卡四卡免费网址| caoporm超免费公开视频| 免费va在线观看| 国产高清对白在线观看免费91| 亚洲一区二区三区影院| 亚洲精品视频观看| 又大又硬又粗又黄的视频免费看|