亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP中move_uploaded_file() 函數詳解

2020-03-22 18:54:06
字體:
來源:轉載
供稿:網友
本文主要和大家介紹了PHP move_uploaded_file() 函數,其實就是將上傳的文件移動到新位置,需要的朋友可以參考下,希望能幫助到大家。

move_uploaded_file() 函數將上傳的文件移動到新位置。

若成功,則返回 true,否則返回 false。

語法

move_uploaded_file(file,newloc)

參數描述file必需。規定要移動的文件。newloc必需。規定文件的新位置。

說明

本函數檢查并確保由 file 指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機制所上傳的)。如果文件合法,則將其移動為由 newloc 指定的文件。

如果 file 不是合法的上傳文件,不會出現任何操作,move_uploaded_file() 將返回 false。

如果 file 是合法的上傳文件,但出于某些原因無法移動,不會出現任何操作,move_uploaded_file() 將返回 false,此外還會發出一條警告。

這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統的其他用戶顯示其內容的話。

提示和注釋

注釋:本函數僅用于通過 HTTP POST 上傳的文件。

注意:如果目標文件已經存在,將會被覆蓋。

安全補充

來自w3c的介紹,下面說說我遇到的問題。

一般來說,我們都會這樣寫保存文件:


$fileName = $_SERVER['DOCUMENT_ROOT'].'/Basic/uploads/'.$_FILES['file']['name']; move_uploaded_file($_FILES['file']['tmp_name'],$fileName )

先解釋,這兩句代碼的含義:直接保存文件,同時文件名也為用戶上傳的文件名
好了,這下子風險來了:

①直接保存文件。

這意味著不對文件進行任何識別,如果有用戶上傳了一段后臺代碼保存為jpg后綴或者其他,要是管理員一不注意將其以php映射,然后訪問這個后臺,- -結果可想而知,要是他在后臺中執行刪除所有數據庫,整個網站直接GG??傊苯颖4嫖募泻艽箫L險。

②使用與用戶文件名相同的文件名。

上述代碼如果用戶使用中文文件名,則會報錯。

一牽涉到文件名,就牽涉到編碼,要是文件名是英文+數字還好,如果包含中文那就頭大了,要重新對其編碼。

我認為可靠的保存,應該是這樣的:

①要對用戶上傳的文件進行識別。

文件識別,這個部分有很多功能,我覺得用MIME type就很好,這個也很難偽造。

②要將文件名改換。

我覺得最好改成時間的格式像“201803264104421”這種文件名,也可以將文件名與數據庫相對應起來。

補充:

有兩個參數,第一個參數是你上傳后的臨時文件名,由系統自動生成。通常其樣式為:

$_FILE["file"]["tmp_name"];

其中的file為你前臺文件上傳表單的名稱。
第二個參數就是包含有路徑的新的文件名。如:

"upload/1.jpg";

這樣,就會把你上傳的文件,移動到當前目錄下名稱upload的子目錄下,并把文件名保存為:1.jpg。

move_uploaded_file()函數實例

使用move_uploaded_file()函數上傳文件到服務器。


<?php  $tmp_filename = $_FILES['myupload']['tmp_name'];  if(!move_uploaded_file($tmp_filename,"/path/to/dest/{$_FILES['myupload']['name']}")) {   echo "An error has occurred moving the uploaded file.<BR>";   echo "Please ensure that if safe_mode is on that the " . "UID PHP is using matches the file.";   exit;  } else {   echo "The file has been successfully uploaded!";  }?>

move_uploaded_file上傳文件失敗的案例及解決方法

今天在實現一個在用戶注冊時上傳頭像圖片文件的PHP腳本時,出現了問題:php腳本代碼如下:


<?php define('ROOT',dirname(__FILE__).'/');  if ($_FILES["file"]["error"] > 0)  {   echo "Return Code: " . $_FILES["file"]["error"] . "<br />";  }  else  {   echo "Upload: " . $_FILES["file"]["name"] . "<br />";   echo "Type: " . $_FILES["file"]["type"] . "<br />";   echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";   echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";   if (file_exists("upload/" . $_FILES["file"]["name"]))   {    echo $_FILES["file"]["name"] . " already exists. ";   }   else   {    if(is_uploaded_file($_FILES['file']['tmp_name'])){     $stored_path = ROOT.'/upload/'.basename($_FILES['file']['name']);          if(move_uploaded_file($_FILES['file']['tmp_name'],$stored_path)){      echo "Stored in: " . $stored_path;     }else{      echo 'Stored failed:file save error';     }    }else{     echo 'Stored failed:no post ';    }    }  } ?>

當我執行執行上面的腳本時,腳本輸出"Stored failed:file save error",很明顯是出錯了.在php_error_log文件中我看到了出錯問題:權限不夠,我終于找到了出錯的地方:我們存放圖片的目的目錄對執行PHP的用戶來說是沒有權限的,執行PHP腳本的用戶和我寫腳本代碼、創建圖片文件夾的用戶不是同一個用戶,因此只需要將文件權限改為777即可。

PHP開發學習 文件上傳(move_uploaded_file)

功能:把上傳的臨時文件移動到upload目錄下面,upload是在根目錄下已經創建好的?。?!


<form action="" enctype="multipart/form-data" method="post"   name="uploadfile">上傳文件:<input type="file" name="upfile" /><br>  <input type="submit" html' target='_blank'>value="上傳" /></form> <?php //print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){  $upfile=$_FILES["upfile"]; //獲取數組里面的值  $name=$upfile["name"];//上傳文件的文件名  $type=$upfile["type"];//上傳文件的類型  $size=$upfile["size"];//上傳文件的大小  $tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑 //判斷是否為圖片  switch ($type){   case 'image/pjpeg':$okType=true;    break;   case 'image/jpeg':$okType=true;    break;   case 'image/gif':$okType=true;    break;   case 'image/png':$okType=true;    break;  }   if($okType){   /**    * 0:文件上傳成功<br/>    * 1:超過了文件大小,在php.ini文件中設置<br/>    * 2:超過了文件的大小MAX_FILE_SIZE選項指定的值<br/>    * 3:文件只有部分被上傳<br/>    * 4:沒有文件被上傳<br/>    * 5:上傳文件大小為0    */   $error=$upfile["error"];//上傳后系統返回的值   echo "================<br/>";   echo "上傳文件名稱是:".$name."<br/>";   echo "上傳文件類型是:".$type."<br/>";   echo "上傳文件大小是:".$size."<br/>";   echo "上傳后系統返回的值是:".$error."<br/>";   echo "上傳文件的臨時存放路徑是:".$tmp_name."<br/>";    echo "開始移動上傳文件<br/>"; //把上傳的臨時文件移動到upload目錄下面(upload是在根目錄下已經創建好的?。?!)   move_uploaded_file($tmp_name,"upload/".$name);   $destination="upload/".$name;   echo "================<br/>";   echo "上傳信息:<br/>";   if($error==0){    echo "文件上傳成功啦!";    echo "<br>圖片預覽:<br>";    echo "<img src=".$destination.">"; //echo " alt=/"圖片預覽:/r文件名:".$destination."/r上傳時間:/">";   }elseif ($error==1){    echo "超過了文件大小,在php.ini文件中設置";   }elseif ($error==2){    echo "超過了文件的大小MAX_FILE_SIZE選項指定的值";   }elseif ($error==3){    echo "文件只有部分被上傳";   }elseif ($error==4){    echo "沒有文件被上傳";   }else{    echo "上傳文件大小為0";   }  }else{   echo "請上傳jpg,gif,png等格式的圖片!";  } } ?>

執行結果:

相關推薦:

有關php move_uploaded_file()函數的文章推薦10篇

以上就是PHP中move_uploaded_file() 函數詳解的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品影视伊人网| 亚洲视频在线播放| 日本三级久久久| 国产日产亚洲精品| 亚洲人成五月天| 欧美中文在线免费| 国产精品观看在线亚洲人成网| 色综合影院在线| 国产视频观看一区| 国产精品私拍pans大尺度在线| 亚洲国产免费av| 国产999在线| 国产91热爆ts人妖在线| 2019国产精品自在线拍国产不卡| 中文字幕久久精品| 久久久中文字幕| 亚洲国产精品悠悠久久琪琪| 欧美肥老太性生活视频| 免费av一区二区| 精品视频www| 日韩在线视频一区| 国产精品www网站| 久久久久国产一区二区三区| 欧美成人午夜激情在线| 国产精品羞羞答答| 欧美黑人极品猛少妇色xxxxx| 精品久久久久久久久久国产| 亚洲综合精品一区二区| 深夜成人在线观看| 久久偷看各类女兵18女厕嘘嘘| 亚洲视频在线免费看| 亚洲综合精品伊人久久| 国产精品欧美日韩久久| 亚洲国产97在线精品一区| 亚洲欧美日韩第一区| 欧美性猛交xxxx乱大交| 日韩在线观看精品| 国产精品毛片a∨一区二区三区|国| 久久视频免费在线播放| 国产精品久久久久久久久久ktv| www.亚洲一二| 欧美久久精品午夜青青大伊人| 国产日韩精品电影| 精品视频9999| 中文字幕亚洲无线码a| 欧美伊久线香蕉线新在线| 久久亚洲精品一区二区| 欧美日韩999| 51久久精品夜色国产麻豆| 欧美精品激情在线| 国产在线观看不卡| 色偷偷9999www| 国产成人精品日本亚洲专区61| 欧美一区二区三区免费视| 91精品中文在线| 亚洲欧美一区二区三区久久| 国产手机视频精品| 日韩av电影在线播放| 日韩欧美在线视频免费观看| 久久影视电视剧免费网站清宫辞电视| 亚洲色在线视频| 自拍亚洲一区欧美另类| 亚洲第一精品电影| 亚洲精品v欧美精品v日韩精品| 久久99久久99精品中文字幕| 日韩欧美亚洲一二三区| 亚洲乱码国产乱码精品精天堂| 国产日韩欧美夫妻视频在线观看| 日韩电影大片中文字幕| 最近2019中文字幕大全第二页| 亚洲三级黄色在线观看| 国产日本欧美在线观看| 欧美大学生性色视频| 一区二区欧美日韩视频| 国产一区二区三区视频在线观看| 亚洲第一视频在线观看| 91在线免费观看网站| 日韩在线观看免费全| 992tv成人免费视频| 欧美中文字幕在线播放| 91精品国产高清久久久久久| 亚洲综合色av| 久久成人av网站| 久久成人在线视频| 日韩av综合网站| 国产人妖伪娘一区91| 国产精品久久久久久婷婷天堂| 成人h猎奇视频网站| 性欧美在线看片a免费观看| 亚洲欧美日韩精品| 精品国产91乱高清在线观看| 夜夜躁日日躁狠狠久久88av| 国产精品久久中文| 久久国产精彩视频| 欧美日韩高清在线观看| 欧美日韩激情视频8区| 川上优av一区二区线观看| 欧美激情欧美激情| 九九热这里只有精品免费看| 欧美中在线观看| 日韩中文字在线| 亚洲精品久久久久久久久久久久| 日韩av一区二区在线| 国产亚洲精品久久久| 国产成人在线亚洲欧美| 欧美日韩在线看| 亚洲精品综合精品自拍| 久久免费视频在线观看| 色偷偷偷综合中文字幕;dd| 亚洲免费av电影| 亚洲免费成人av电影| 国产成人精品综合久久久| 精品国产精品三级精品av网址| 久久久亚洲成人| 日本道色综合久久影院| 午夜免费久久久久| 欧美理论电影在线观看| 蜜臀久久99精品久久久无需会员| 国产一区二区三区高清在线观看| 国产精品视频xxx| 亚洲欧美国内爽妇网| 国产精品久久色| 国内精品久久久久久影视8| 韩曰欧美视频免费观看| 日本高清视频一区| 亚洲最新视频在线| 最近中文字幕日韩精品| 91日韩在线视频| 久久国产精品亚洲| 国产精品日韩电影| 2024亚洲男人天堂| 欧美在线视频播放| 久久91亚洲精品中文字幕奶水| 久久夜色精品国产亚洲aⅴ| 色中色综合影院手机版在线观看| 欧美成人黄色小视频| 91免费视频网站| 亚洲视频在线观看| 日韩欧美aⅴ综合网站发布| 一区二区三区视频免费| 欧美老女人性生活| 国产mv免费观看入口亚洲| 国产日韩精品视频| 久久视频在线播放| 日韩激情在线视频| 国产精品老女人视频| 亚洲二区在线播放视频| 欧美激情亚洲综合一区| 26uuu亚洲国产精品| 久久精品国亚洲| 国产精品观看在线亚洲人成网| 国产不卡av在线免费观看| 亚洲国产精品va在线看黑人动漫| 亚洲色图校园春色| 九九九久久久久久| 国产ts人妖一区二区三区| 亚洲一区中文字幕在线观看| 久久6免费高清热精品| 国产在线a不卡| 国产精品日韩专区| 成人免费观看49www在线观看| 亚洲欧美激情另类校园| 欧美日韩国产一区二区| 欧美成人精品在线播放|