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

首頁 > 編程 > PHP > 正文

關于PHP的move_uploaded_file() 函數的解析

2020-03-22 20:05:14
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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 !

相關推薦:

PHP生成不重復隨機數的方法匯總

PHP 頁面編碼聲明方法詳解(header或meta)

PHP循環遍歷數組的3種方法list()、each()和while總結

以上就是關于PHP的move_uploaded_file() 函數的解析的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜亚洲欧美日韩综合| 日韩一区二区精品视频| 国产精品视频自在线| 久久精品国产69国产精品亚洲| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国产天堂网精品网站| 91精品国产自产在线| 热re91久久精品国99热蜜臀| 久久免费国产精品1| 国产欧美久久久久久| 91国产美女在线观看| 欧美电影在线观看| 欧美激情乱人伦一区| 日韩av网站导航| 深夜福利日韩在线看| 日韩高清电影好看的电视剧电影| 亚洲自拍偷拍一区| 久久久国产一区二区| 日韩精品在线观看视频| 国产精品久久久久av免费| 97精品国产97久久久久久免费| 国产成人亚洲综合91精品| 国产97在线播放| 亚洲欧美一区二区三区在线| 国产suv精品一区二区| 在线日韩av观看| 欧美电影在线观看| 久久九九有精品国产23| 992tv在线成人免费观看| 午夜剧场成人观在线视频免费观看| 国产女同一区二区| 欧美美最猛性xxxxxx| 欧美一级片在线播放| 正在播放欧美一区| 91久久夜色精品国产网站| 欧美理论在线观看| 久久久久久久久久久免费精品| 国产一区av在线| 国产综合久久久久| 欧美精品一区三区| 97超视频免费观看| 中文字幕国内精品| 欧美片一区二区三区| 第一福利永久视频精品| 欧美激情免费观看| 成人欧美一区二区三区黑人孕妇| 国产精品视频26uuu| 欧美日韩国产精品一区二区三区四区| 精品一区电影国产| 欧美一级视频在线观看| 久久成人精品视频| 国产精品大片wwwwww| 热久久这里只有精品| 日本成人激情视频| 久久久精品亚洲| 国产69久久精品成人| 日本精品一区二区三区在线播放视频| 不卡中文字幕av| 国产精品美女www| 青草热久免费精品视频| 国产精品一区专区欧美日韩| 欧美日韩美女在线观看| 日韩欧美国产高清91| 亚洲图中文字幕| 国产精品久久久久91| 国产视频在线一区二区| 美女福利精品视频| 一本色道久久88亚洲综合88| 国产精品久久久久久久久久久久久久| 国产精品久久久久久久久久免费| 亚洲国产一区二区三区四区| 91精品在线影院| 97视频人免费观看| 一本大道香蕉久在线播放29| 97色在线播放视频| 日韩三级影视基地| 色综合久久久888| 成人午夜两性视频| 亚洲天堂日韩电影| 欧美日韩免费网站| 亚洲欧洲日本专区| 国产精品91久久| 理论片在线不卡免费观看| 国产乱人伦真实精品视频| 久久在线观看视频| 日本电影亚洲天堂| 91精品国产综合久久久久久蜜臀| 亚洲人成网站777色婷婷| 一区二区三区视频免费在线观看| 亚洲精品网址在线观看| 亚洲国产另类 国产精品国产免费| 一区二区三区回区在观看免费视频| 日韩电影中文字幕一区| 久久久av亚洲男天堂| 日本欧美爱爱爱| 超碰精品一区二区三区乱码| 久久久国产成人精品| 亚洲成年网站在线观看| 亚洲精品理论电影| 精品亚洲国产成av人片传媒| 久久99精品久久久久久青青91| 国产精品一区二区电影| 性色av一区二区三区免费| 久久久久国色av免费观看性色| 日韩一区二区三区国产| 成人在线免费观看视视频| 欧美一级片一区| 久久久久久久久久久91| 亚洲另类xxxx| 伊人伊成久久人综合网小说| 亚洲成人av中文字幕| 亚洲精美色品网站| 国产精品亚洲自拍| 亚洲福利小视频| 久久久久国产一区二区三区| 亚洲色图偷窥自拍| 4438全国亚洲精品在线观看视频| 久久青草福利网站| 成人在线视频福利| 亚洲精选在线观看| 国产精品久久久久久久久粉嫩av| 色狠狠av一区二区三区香蕉蜜桃| 久久免费视频网站| 国产精品久久久久久av| 精品国产欧美一区二区三区成人| 国语自产精品视频在线看| 国产久一一精品| 日韩欧美中文字幕在线观看| 少妇高潮 亚洲精品| 91精品国产综合久久香蕉| 国产精品第一第二| 欧美日韩中文字幕日韩欧美| 成人有码视频在线播放| 激情成人中文字幕| 亚洲男女性事视频| 欧美日韩精品在线播放| 亚洲欧美日韩精品久久| 97在线视频免费观看| 国产69精品99久久久久久宅男| 色妞一区二区三区| 欧美日韩综合视频网址| 日韩av有码在线| www.欧美精品一二三区| 国产精品jizz在线观看麻豆| 久久久久久久久久久亚洲| 91精品综合视频| 中文字幕av一区| 亚洲日本中文字幕免费在线不卡| 97精品视频在线播放| 久久精品小视频| 国产精自产拍久久久久久| 中文字幕日韩在线视频| 欧美亚洲国产成人精品| 亚洲国模精品私拍| 欧美日韩中文字幕在线视频| 久久久久久12| 国产精品劲爆视频| 狠狠躁夜夜躁人人爽天天天天97| 色999日韩欧美国产| 激情久久av一区av二区av三区| 人人澡人人澡人人看欧美| 国产视频久久久| 久久精品国产91精品亚洲| 国产精品免费久久久久影院|