Ⅰ php文件上傳,提示移動文件失敗
php文件上傳,提示移動文件失敗,基本是上傳保存的目錄不可寫造成的,需要好好設置一下,下面是一個PHP文件上傳的簡單例子,僅作參考:
<formaction=""enctype="multipart/form-data"method="post"
name="uploadfile">上傳文件:<inputtype="file"name="upfile"/><br>
<inputtype="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/>";
//把上傳的臨時文件移動到up目錄下面
move_uploaded_file($tmp_name,'up/'.$name);
$destination="up/".$name;
echo"================<br/>";
echo"上傳信息:<br/>";
if($error==0){
echo"文件上傳成功啦!";
echo"<br>圖片預覽:<br>";
echo"<imgsrc=".$destination.">";
//echo"alt="圖片預覽: 文件名:".$destination." 上傳時間:">";
}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文件上傳中文亂碼問題,以下為代碼
說的是文件名亂碼么?
凡中文這樣轉化一下
iconv("GB2312","UTF-8",$_FILES["file"]["name"] );
Ⅲ php寫了個上傳文件的代碼,報如下錯誤:Notice: Undefined variable: FILES in D:哪位大神幫我看下
$hz=array_pop(explode(".",$FILES['myfile']['name'])); //這里凱扮$FILES['myfile']['name']
$FILES['myfile']['name'] 這種表示是一個php的二維數組 沒有這個數坦叢組讓孫櫻當然就報錯啦 碼代碼注意下就好了
Ⅳ php上傳文件提示content-type error
上傳文件是有類型限制的,你傳的是什麼,就給文件指定一個類型,相匹配就好了。除了這個,還會有大小的限制,具體的你可以看下文檔
Ⅳ php 文件上傳哪裡錯了
Warning: date(): 這個需要代碼中設置時區
date_default_timezone_set("PRC")
Warning: mkdir(): 凳搭穗棗卜文件已經存在了 使用:
file_exists()
Notice: Undefined variable: FILES 全局的文件變枝侍量寫錯了:
$_FILES
Warning: move_uploaded_file(): The second argument to () function cannot be a directory 不能是個目錄,需要是個文件
Ⅵ php上傳文件錯誤怎麼解決
<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload: <input name="uploaded_file" type="file" />
<input type="submit" value="Upload" />
</form>
</body>
</html>
有一些規則需要建設時遵循HTML表單。首先,請確保該窗體使用POST方法。第二,形
式需要以下屬性:字元編碼=「多重/表單數據」。它指定的內容類型時使用的信息提
交給伺服器。如果沒有這些要求,您的文件上傳不了。
另一個需要注意的是隱藏的表單欄位名為MAX_FILE_SIZE設置的值。某些Web瀏覽器實
際上反映了這個領域,也不會允許用戶上載文件超過這個數字(位元組)更大。您應該
將此值設置為配合最大上傳大小,在php.ini文件中設置。這是一套與中
upload_max_filesize,默認值是2MB的。但它仍然不能保證你的腳本將不會轉交了尺
寸較大的文件。危險的是,攻擊者將嘗試向您發送一個請求幾個大文件,並填寫了文
件系統,也就是PHP存儲解碼文件。設置在php.ini的post_max_size的指令文件的最大
尺寸,你要(必須大於中upload_max_filesize)。默認值為10MB的。此指令控制的所
有要求,在一個允許的POST數據最大大小。另外,還要確保在你的php.ini文件
file_uploads設置為On。
至少,有一個在輸入標記屬性看:類型=「文件」。它是用來指定為文件選擇控制輸入
元素。這提供了一個文件的URI的地方,則需要鍵入一個「瀏覽」按鈕,可作為替代的
URI輸入使用。
在用戶進入一個文件的URI,並點擊提交按鈕的文件的副本將被發送到伺服器和用戶將
被重定向到upload.php。此PHP文件將處理表單數據。
返回頁首
處理表單數據(PHP代碼)
當文件被上傳和PHP創建了一個文件的臨時副本,並建立了超全局變數$ _FILES數組,
包含有關文件的信息。對於每個文件,有5個數據。我們已上傳欄位命名
為'uploaded_file',所以會存在以下數據:
變數$ _FILES [「uploaded_file」] [「name」]從用戶的機器上載的文件的原名稱
變數$ _FILES [「uploaded_file」] [「type」]的上傳文件的MIME類型(如果瀏覽器
提供的類型)
變數$ _FILES [「uploaded_file」] [「size」]的以位元組為單位上傳的文件大小
變數$ _FILES [「uploaded_file」] [「tmp_name」],在該文件暫時存儲在伺服器上
的位置
變數$ _FILES [「uploaded_file」] [「error」]錯誤代碼從文件上傳結果
下面的例子接受一個上傳的文件並保存在上載目錄中。它允許根據350Kb上傳只有JPEG
圖像。該代碼本身,是相當清楚的,但我們會作出一些解釋。有一個例子在外觀和保
存此為upload.php PHP代碼。
<?php
//Сheck that we have a file
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error']
== 0)) {
//Check if the file is JPEG image and it's size is less than 350Kb
$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg")
&&
($_FILES["uploaded_file"]["size"] < 350000)) {
//Determine the path to which we want to save this file
$newname = dirname(__FILE__).'/upload/'.$filename;
//Check if the file with the same name is already exists on the
server
if (!file_exists($newname)) {
//Attempt to move the uploaded file to it's new place
if ((move_uploaded_file($_FILES['uploaded_file']
['tmp_name'],$newname))) {
echo "It's done! The file has been saved as: ".$newname;
} else {
echo "Error: A problem occurred ring file upload!";
}
} else {
echo "Error: File ".$_FILES["uploaded_file"]["name"]." already
exists";
}
} else {
echo "Error: Only .jpg images under 350Kb are accepted for upload";
}
} else {
echo "Error: No file uploaded";
}
?>
在此之前的上載您需要的文件,以確定文件是否真的上傳任何東西。之後我們檢查上
傳的文件,JPEG圖像,其大小小於350Kb的。接下來,我們確定的道路,這是我們要保
存此文件,並檢查是否已經存在一個伺服器上的這些文件的名稱。當所有檢查通過,
我們將文件復制到一個永久的位置使用move_upload_file()函數。此功能也證實該
文件你要過程,是一個合法的文件從用戶上傳結果。如果該文件上傳成功,那麼相應
的消息將出現。
注意:要確保PHP已經允許讀取和寫入臨時文件中保存的位置是您要復制文件的目錄。
這個例子其實很簡單,它的提出是為了演示如何使用PHP上傳文件。例如,您可以添加
新的條件,並允許上傳GIF和PNG圖像,或任何文件,您需要其他種類。如果您是本教
程使用PHP不熟悉可能是一個很好的起點。
Ⅶ thinkphp5上傳文件方法不存在
thinkphp5上孝旅皮傳文鎮此件方法不存在是代碼錯誤的原因。在move復制文件前,對文件名進去中文轉碼,轉換成巧差gb2312,復制完成,轉換回utf-8即可。
Ⅷ 求以下php代碼錯誤 文件無法上傳
$uploadRoot='./uploads/鬧告';設置上傳跡野目錄 -> $uploadRoot='./uploads/';//設置上傳目錄
print_r<$_FILES[>; -> print_r($_FILES);
echo"<img src="'.$fileSaved.'">"; ->液州明 echo"<img src='" . $fileSaved . "'>";
Ⅸ php上傳文件,我想知道我的代碼哪裡錯了,怎麼改
經代碼測試(原文復制、粘貼),測試代碼結果正常:
訪問頁面:
從錯誤提示來看:
Object not found! 通常是判配出現在有 類 相關代碼中才會再現,但在你的代運沖者碼貌似沒有牽涉到。
The requested URL was not found on this server.
這個錯誤是 請求的 URL 在伺服器上沒找到,建議你檢查下upload_file.php 在伺服器上旁薯的路徑以及文件名是否正確。
Ⅹ php不能上傳文件,[error] => 2
從 PHP 4.2.0 開始,PHP 將隨文件信息數和段燃組一起返回一個對應的錯誤代碼。該代碼可以在文件上傳時生成的文件數組中的 ['error'] 欄位中被找到,也就是 $_FILES['userfile']['error']。
UPLOAD_ERR_OK
值:0; 沒有錯誤發生,文件上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有文件被上傳。
注: 這些在 PHP 4.3.0 之後變成了 PHP 常量。
************************************************************************************************************************************
按這上面說的你上傳的文件太大了.所以你在程序里最好加個對$_FILES['userfile']['error']的判斷然後給操作者一個提示.還有最好也對文燃慧件的類型進行限制,要不然也喚虛對伺服器造成不必要的麻煩上傳的文件類型在$_FILES['userfile']['type']里.
************************************************************************************************************************************