本文主要和大家介紹了PHP move_uploaded_file() 函數,其實就是將上傳的檔案移到新位置,需要的朋友可以參考下,希望能幫助到大家。
move_uploaded_file()
函數將上傳的檔案移到新位置。
若成功,則傳回 true,否則傳回 false。
語法
move_uploaded_file(file,newloc)
參數 | ##描述說明|
---|---|
必要。規定要移動的文件。 | |
必要。規定文件的新位置。 |
提示與註解
註解:本函數僅用於透過 HTTP POST 上傳的檔案。 注意:如果目標檔案已經存在,將會被覆寫。安全補充
來自w3c的介紹,以下說說我遇到的問題。 一般來說,我們都會這樣寫保存檔案:$fileName = $_SERVER['DOCUMENT_ROOT'].'/Basic/uploads/'.$_FILES['file']['name']; move_uploaded_file($_FILES['file']['tmp_name'],$fileName )先解釋,這兩句程式碼的意思:直接儲存文件,同時檔案名稱也為使用者上傳的檔案名稱
好了,這下子風險來了:
補充:
有兩個參數,第一個參數是你上傳後的暫存檔案名,由系統自動產生。通常其樣式為:$_FILE["file"]["tmp_name"];其中的file為你前台檔案上傳表單的名稱。第二個參數就是包含有路徑的新的檔名。如:
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" 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() 函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!