導航:首頁 > 編程語言 > phpini上傳文件

phpini上傳文件

發布時間:2023-02-01 00:37:47

1. 為什麼修改了php.ini後上傳文件還是失敗

上次文件除了你設置的那些參數以為,還取決於網頁端的頁面設置。
在form表單中有項隱藏項
<input type="hidden" name="MAX_FILE_SIZE" value="10485761" />
該項允許上傳的最大文件為10M

另外由於上傳10M的文件一般需要花很長時間,所以在php.ini中設置腳本執行時間也要注意,盡量設置得長一些,不然文件還沒傳好,腳本執行時間超過了,也會報錯。
腳本時間參數:max_execution_time

還有上傳文件由於會用到內存,因此在php.ini內給腳本分配的內存也要超過10m
內存設置參數:memory_limit

如果還是不行,請把你的錯誤結果貼出來。

2. php文件上傳在php.ini中都設置了 post為150M 上傳100M 時間設置0,為什麼我上傳5M文件還是顯示錯誤1,

關於大文件的上傳,需要做如下修改:
打開php.ini,首先找到
file_uploads = on ;是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir ;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize = 8m ;望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size = 8m ;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。

進一步配置以下的參數
max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time = 600 ;每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit = 8m ;每個PHP頁面所吃掉的最大內存,默認8M
把上述參數修改後,在網路所允許的正常情況下,就可以上傳大體積文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m

3. 求php怎麼實現web端上傳超大文件

加大PHP上傳文件大小的限制,是通過修改PHP.INI文件來實現,但是這個支持是有限度的,因為WEB協議本為下載而生,超大文件的上傳是FTP的專利。

PHP用超級全局變數數組$_FILES來記錄文件上傳相關信息的。

1.file_uploads=on/off
是否允許通過http方式上傳文件
2.max_execution_time=30
允許腳本最大執行時間,超過這個時間就會報錯
3.memory_limit=50M
設置腳本可以分配的最大內存量,防止失控腳本佔用過多內存,此指令只有在編譯時設置了
--enable-memory-limit標志的情況下才生效
4.upload_max_filesize=20M
允許上傳文件的最大大小,此指令必須小於post_max_size
5.upload_tmp_dir
上傳文件臨時存放目錄
6.post_max_size=30M
允許post方式可以接受最大大小
$_FILES['myFile']['name'] 客戶端上次文件的原始名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關的狀態碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量)
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; 沒有文件被上傳。
值:5; 上傳文件大小為0.
文件被上傳結束後,默認地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。
也就是不管是否上傳成功,腳本執行完後臨時目錄里的文件肯定會被刪除。
附:修改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 為佳.

4. file;上傳文件超過了php.ini中的設置最大值 怎麼解決

方法一、修改PHP.INI文件,設置更大的上傳參數,相關的參數如下:
upload_max_filesize = 32M
這個修改要伺服器管理員才有許可權,普通用戶需要聯系開發商管理員。

方法二、放棄大文件的存檔

5. 文件是空php.ini禁止了上傳,或其中post_max_size的值小於upload_max_filesize的值。

這個應該是上傳文件超過了2M,即PHP默認的最大上傳大小,你可以設置下。
配置php.ini文件 (以上傳500M以下大小的文件為例)
查找以下選項並修改->
file_uploads = On ;打開文件上傳選項
upload_max_filesize = 500M ;上傳文件上限

如果要上傳比較大的文件,僅僅以上兩條還不夠,必須把伺服器緩存上限調大,把腳本最大執行時間變長
post_max_size = 500M ;post上限
max_execution_time = 1800 ; Maximum execution time of each script, in seconds腳本最大執行時間
max_input_time = 1800 ; Maximum amount of time each script may spend parsing request data
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)內存上限

參考:http://www.jb51.net/article/18975.htm

6. php如何實現文件上傳啊

PHP一般使用POST方法上傳文件,下面是一個簡單的文件上傳示例,裡面有相關的注釋:

up.htm文件:

----------

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

<title>UpSample</title>

</head>

<body>

<formaction="up.php"method="post"enctype="multipart/form-data">

<!--備注:表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據,進行下面的操作,並且method要設置為"post"-->

File:<br/>

<inputtype="file"name="upfile"size="30"><br/>

<!--上傳框要設置type="file"-->

<br/>

<inputtype="submit"value="Upload">

</form>

</body>

</html>

----------

up.php文件

----------

<?php

if(is_uploaded_file($_FILES["upfile"]["tmp_name"])){

//如果有文件上傳

//is_uploaded_file--判斷文件是否是通過HTTPPOST上傳的,返回布爾值

//$_FILES['upfilename']['...'],其中的'upfilename'即為上傳框的name屬性

//$_FILES['upfile']['tmp_name']--文件被上傳後在服務端儲存的臨時文件名,一般是系統默認

if(!eregi('pdf',$_FILES['upfile']['type'])){

//我們這里假設你要上傳一個pdf文件

//if(!eregi('pdf',$_FILES['upfile']['type']))這個是判斷上傳文件類型的,是不是pdf文件,當然,若是想判斷是否是jpg文件的話,將pdf改成jpg就可以了,即if(!eregi('jpg',$_FILES['upfile']['type']))

//$_FILES['upfile']['type']是文件的MIME類型,如果瀏覽器提供此信息的話。例如「image/gif」

echo'TheuploadedfileisnotanpdfFile!Pleaseuploadarightfile!';

}else{

$filename=$_FILES['upfile']['name'];

//$filename=$_FILES['upfile']['name'],這里是指定上傳後的文件名,這里使用的仍是原來的文件名字,($_FILES['upfile']['name']是原始文件的名字)

if(move_uploaded_file($_FILES["upfile"]["tmp_name"],dirname(__FILE__)."/upload_file/".$filename)){

//這里就是上傳文件

//dirname(__FILE__)."/upload_file/".$file_name--指定上傳的目標文件,假設你要上傳的目標文件夾upload_file是和當前文件(upload.php)在同一文件夾下

//chmod(dirname(__FILE__)."/upload_file/".$file_name,0444);

//上面注釋掉的是用來改變上傳後文件的屬性,444即只有執行和讀的許可權(看情況加上)

echo$_FILES["upfile"]["name"]."uploadedsucceed!!!";

}else{

echo"Can'tupload!!!";

}

}

}else{

echo"Fileisnotselected";

}

//需要注意的:

/*

在你的up.php同級目錄下建立upload_file文件夾,來存放上傳的文件

在上傳之前要看一下php的配置文件:php.ini中的三處設置

1.是否允許文件上傳:(file_uploads=On)

2.文件上傳的最大size:(upload_max_filesize)

3.post的最大size(post_max_size)這個大小設置成和uplod_max_filesize一樣大或比uplod_max_filesize大

*/

/*

這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用if語句來判斷上傳文件的大小($_FILES['upfile']['type'])),並進行提示控制等,相關可以查閱$_FILE['upfile']數組的各個值分別代表什麼

*/

?>

----------

可以看看php100裡面的視頻,其中一節就是介紹文件上傳的.:)

7. 如何修改PHP上傳文件大小限制

1. 在php.ini中,做如下修改:x0dx0a file_uploads = onx0dx0a upload_tmp_dir = /home/uploadx0dx0a upload_max_filesize = 4000Mx0dx0a post_max_size = 4000Mx0dx0a 一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。x0dx0a 但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網路真有100M/S的上傳高速,否則你還得關心關心下面的參數:x0dx0a max_execution_time = 600x0dx0a max_input_time = 600x0dx0a memory_limit = 128Mx0dx0ax0dx0a2. 在要確認上傳的

里加入以下行:x0dx0a x0dx0a3. $_FILES["userfile"]["error"]返回值說明:x0dx0a $_FILES['teacher_pic']['error'] = 1 文件大小超過了PHP.ini中的文件限制x0dx0a $_FILES['teacher_pic']['error'] = 2 文件大小超過了瀏覽器限制x0dx0a $_FILES['teacher_pic']['error'] = 3 文件部分被上傳x0dx0a $_FILES['teacher_pic']['error'] = 4 沒有找到要上傳的文件x0dx0a $_FILES['teacher_pic']['error'] = 5 伺服器臨時文件夾丟失x0dx0a $_FILES['teacher_pic']['error'] = 6 文件寫入到臨時文件夾出錯x0dx0a $_FILES['teacher_pic']['error'] = -1 末充許的類型x0dx0a $_FILES['teacher_pic']['error'] = -2 文件過大,上傳文件不能超過{$this->maxSize}個位元組x0dx0a $_FILES['teacher_pic']['error'] = -3 上傳失敗x0dx0a $_FILES['teacher_pic']['error'] = -4 建立存放上傳文件目錄失敗,請重新指定上傳目錄x0dx0a $_FILES['teacher_pic']['error'] = -5 必須指定上傳文件的路徑

8. php文件上傳使用了哪些函數

//定義上傳目錄變數
$upath="./upload/";
//獲取上傳文件信息
$fupload=$_FILES['image'];
//定義上傳的文件類型
$imgtype=array("image/jpeg","image/jpg","image/png","image/gif","image/bmp");
//獲取php.ini文件upload_max_filesize的大小
$umfs=ini_get("upload_max_filesize");
//獲取html表單post文件大小
$pms=ini_get("post_max_size");
//獲取上傳文件錯誤信息
if($fupload["error"]>0){
switch($fupload["error"]){
case 1:
$errmsg="上傳的文件的大小超過了".$umfs;
break;
case 2:
$errmsg="上傳的文件的大小超過了HTML表單中".$pms."的限制";
break;
case 3:
$errmsg="文件只有部分被上傳";
break;
case 4:
$errmsg="沒有選擇上傳文件";
break;
case 6:
$errmsg="找不到臨時文件夾";
break;
case 7:
$errmsg="文件寫入失敗";
break;
}
die("上傳錯誤:".$errmsg);
}
//過濾上傳文件的大小
if($fupload["size"]>100000000){
die("上傳文件的大小超出了限制");
}
//過濾上傳的文件類型
if(!in_array($fupload["type"],$imgtype)){
die("不支持上傳的文件類型:".$fupload["type"]);
}
//執行上傳文件
if(is_uploaded_file($fupload["tmp_name"])){
if(move_uploaded_file($fupload["tmp_name"],$upath.$fupload["name"])){
echo "文件上傳成功!";
}
}else{
die("不是一個上傳文件!");
}

9. 如何獲得php配置文件上傳文件大小

1、php.ini:upload_max_filesize 所上傳的文件的最大大小。默認值2M。

2、php.ini:memory_limit 本指令設定了一個腳本所能夠申請到的最大內存位元組數,默認值8M。如果不需要任何內存上的限制,必須將其設為 -1。如果內存不夠,則可能出現錯誤:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

3、php.ini:post_max_size 設定POST數據所允許的最大大小。此設定也影響到文件上傳。要上傳大文件,該值必須大於 upload_max_filesize。

10. 我的php代碼關於上傳文件不太會

$filename=$_FILES['upfile']['tmp_name'];//要用tmp_name

$_FILES超全局變數的元素內容有:
$_FILES['file']['name']客戶端文件的原名稱。
$_FILES['file']['type']文件的MIME類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['file']['size']已上傳文件的大小,單位為位元組。
$_FILES['file']['tmp_name']文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。
可以在php.ini的upload_tmp_dir指定,但用putenv()函數設置是不起作用的。
$_FILES['file']['error']該文件上傳相關的錯誤代碼
值:0;沒有錯誤發生,文件上傳成功。
值:1;上傳的文件超過了php.ini中upload_max_filesize選項限制的值。
值:2;上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值。
值:3;文件只有部分被上傳。
值:4;沒有文件被上傳。
值:5;上傳文件大小為0.

閱讀全文

與phpini上傳文件相關的資料

熱點內容
多文件編譯c 瀏覽:537
頭頂加密後為什麼反而更稀疏 瀏覽:789
離心機壓縮機揚程高 瀏覽:656
xshell連接linux命令 瀏覽:5
把多個文件夾的內容合並在一起 瀏覽:481
基於單片機的澆花系統設計ppt 瀏覽:683
卷積碼編解碼及糾錯性能驗證實驗 瀏覽:354
請在刪除驅動器之前暫停加密什麼意思 瀏覽:785
光催化pdf 瀏覽:98
java字元串包含某字元 瀏覽:526
ssm身份認證源碼 瀏覽:466
預排序遍歷樹演算法 瀏覽:671
加密裝置如何打開ping功能 瀏覽:478
python下載372 瀏覽:901
u盤子文件夾隱藏 瀏覽:296
本地誤刪svn文件夾 瀏覽:685
海康威視python通道名 瀏覽:241
如何用app覆蓋全部曲庫 瀏覽:602
變異布林源碼 瀏覽:686
表格加密設置列印區域 瀏覽:437