❶ php 上傳 大小 配置 我配置了好了這些選項,還是不能上傳大文件
1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鍾才能上傳完.
但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行.
這就導致出現 無法打開網頁的情況.這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。
php默認的post_max_size 為2M.如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會改了第二步.但上傳文件時最大仍然為 8M.
為什麼呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.
❷ PHP上傳文件失敗
提示顯示的很清楚的。文件已經上傳了行洞,但是在把文件薯吵從臨時文檔手枯件夾移出來出錯了。注意新地址是否正確
可以使用絕對路徑或者相對路徑,看個人http://www.hi-docs.com/php/move_uploaded_file.html
❸ PHP,上傳文件不成功問題
表示 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
所以你需要修改php.ini 的配置,然後重啟你的web伺服器
php手冊:
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,沒有文件被上傳
UPLOAD_ERR_NO_TMP_DIR
其值為 6,找不到臨時文件夾。PHP 4.3.10 和 PHP 5.0.3 引進。
UPLOAD_ERR_CANT_WRITE
其值為 7,文件寫入失敗。PHP 5.1.0 引進。
❹ 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不熟悉可能是一個很好的起點。
❺ php上傳為什麼不能多文件上傳
html代碼
<html>
<head>
<title></title>
</head>
<body>
<formenctype="multipart/form-data"action="do_upload.php"method="POST">
<!--表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據,進行下面的操作.-->
<fieldset>
<legend>圖片上傳</legend>
第一張圖片<inputname="userfile"type="file"><br>
第二張圖片<inputname="userfile"type="file"><br>
第三張圖片<inputname="userfile"type="file"><br>
第四張圖片<inputname="userfile"type="file"><br>
第五張圖片<inputname="userfile"type="file"><br>
<!--數組的形式傳遞數據-->
<inputtype="submit"value="SendFile">
</fieldset>
</form>
</body>
</html>
2、do_upload.php頁面,即處理多文件上傳的頁面:
<?php
//全局數組$_FILES
//$_FILES['userfile']['tmp_name']文件在web伺服器中臨時存儲的位置
//$_FILES['userfile']['name']用戶系統中的文件名稱
//$_FILES['userfile']['size']文件的位元組大小
//$_FILES['userfile']['type']文件的MIME類型,text/plain,image/gif
//$_FILES['userfile']['error']與文件上載相關的錯誤代碼
?>
<?php
//用for循環來獲取傳遞的數據,是一個三維數據
for($i=0;$i<count($_FILES['userfile']['tmp_name']);$i++)
{
$upfile=$new_folder."/".$_FILES['userfile']['name'][$i];//此處可以根據自己的需要修改
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$upfile)){
echo"第".($i+1)."張圖片上傳成功<br>";
}
else{
echo"第".($i+1)."張圖片上傳不了<br>";
}
}
?>
3、運行截圖
❻ PHP 上傳文件為什麼會失敗
<form name="form1" enctype="multipart/form-data" action="upload.php" method="post">
<p></p>
上傳到files文件夾中:
<input name="upload_file" id="upload_file" type="file" style="border-color:#99CCCC; background-color:#E0EEEE;">
<input type="submit" value="上傳文件" name="submit">
</form>
e盤要有個files文件
upload.php
<?
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
if($upload_file){
$file_size_max = 2000*1000;// 2M限制文件上傳最大容量(bytes)
$store_dir = "E:/files";// 上傳文件的儲存位置
$accept_overwrite = 1;//是否允許覆蓋相同文件
// 檢查文件大小
if ($upload_file_size > $file_size_max) {
echo "對不起,您的文件容量大於規定";
exit;
}
// 檢查讀寫文件
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo "存在相同文件名的文件";
exit;
}
//復制文件到指定目錄
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
echo "復制文件失敗";
exit;
}
}
Echo "<p>您上傳了文件:"派兆晌;
echo $_FILES['upload_file']['name'];
echo "<br>";
//客戶端機器文件的原名稱。
Echo "文件的 MIME 類型為:";
echo $_FILES['upload_file']['type'];
/塵鋒/文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如「image/gif」。
echo "<br>";
Echo "上傳文件大小:";
echo $_FILES['upload_file']['size'];
//已上傳文件的大小,單位為位元組。
echo "<br>";
Echo "文件上傳後被臨時儲存為:";
echo $_FILES['upload_file']['tmp_name'];
//文件被上傳後在服務端儲存的臨時文件名。
echo "<br>猜宴";
$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
Echo "上傳成功"; break;
case 1:
Echo "上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值."; break;
case 2:
Echo "上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。";break;
case 3:
Echo "文件只有部分被上傳";break;
case 4:
Echo "沒有文件被上傳";break;
}
?>
❼ 無法接受php上傳文件
分類: 電腦/網路 >> 軟念遲件
問題描述:
第一個頁面內容如下:
<>
<head><title>uploadfiles</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type=hidden name=max_file_size value="1000000">
<input name=userfile type=file>
<input type=submit value="upfile">
</form>
</body>
</>
第二個php接受頁面內容如下:
<?
$uploaddir = '/etc/清念d/htdocs/php/uploads/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "upchonggong:\n";
print_r($_FILES);
}else {
print "upshi:\n";
print_r($_FILES);
}
print "<pre>";
?>
提仔正李示錯誤內容如下:
Warning: move_uploaded_file(/etc/d/htdocs/php/uploads/CD.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in /etc/d/htdocs/php/upload.php on line 5
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpnHVYHA' to '/etc/d/htdocs/php/uploads/CD?.txt' in /etc/d/htdocs/php/upload.php on line 5
upshi:
Array
(
[userfile] => Array
(
[name] => CD.txt
[type] => text/plain
[tmp_name] => /tmp/phpnHVYHA
[error] => 0
[size] => 1929
)
)
操作平台是redhat9.0
請給位php前輩給看看,小蝦在這里先謝過了!
解析:
把要上傳到的文件夾的屬性設置為777
❽ php無法上傳文件該怎麼辦
先試下這段代碼,是最標準的demo
<?php
if((($_FILES["file"]["type"]=="image/gif")
||($_FILES["file"]["type"]=="image/jpeg")
||($_FILES["file"]["type"]=="image/pjpeg"))
&&($_FILES["file"]["size"]<20000))
{
if($_FILES["file"]["error"]>0)
{
echo"ReturnCode:".$_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"Tempfile:".$_FILES["file"]["tmp_name"]."<br/>";
if(file_exists("upload/".$_FILES["file"]["name"]))
{
echo$_FILES["file"]["name"]."alreadyexists.";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo"Storedin:"."upload/".$_FILES["file"]["name"];
}
}
}
else
{
echo"Invalidfile";
}
?>
上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。
注釋:這個例子把文件保存到了名為"upload"的新文件夾。
❾ php無法上傳文件
我也遇皮睜到過,我是APACHE+PHP的環境。
造成這個情況的原因可能比較多,我也只說的出來幾個,你試一下
1.PHP程序的問題,如果可能的話,看一下源代碼的上傳模塊。
2.上傳文件的文件名必須是中文,或者必須是英文or數字.
3.如果有後台的話,則有可能是後台的功能配置,特別注意一下上傳文件的大小與格式。
如果還是不能上傳,我就懷疑是上傳模塊的問題了,你可以給你的Php站加一個上岩握蔽傳模塊,或者從後台上傳。 而且粗州有的模塊是只能從後台上傳,也就是只有管理員可以上傳。