2013-02-20 72 views
0

這是我的代碼:如何上傳部分大文件?在不改變php.ini中

//Receive the data from android 
$name = $_POST['name']; 

//Receive the file 
$file = $_FILES['image']; 

$uploadfile="Media/".$name; 
if(is_uploaded_file($_FILES['image']['tmp_name'])) { 
if(move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) { 
echo json_encode(
     array(
      'result'=>'success', 
      'msg'=>'Media saved successfully.' 
      ) 
     ); 
}else{ 
    echo json_encode(
     array(
      'result'=>'The media can not be saved ', 
      'msg'=>'Problems with the file.' 
      ) 
     ); 
} 
    } 

?> 

這適用於文件下2 MB,而我不希望這種限制,還我不想改變php.ini文件(不是因爲我的) ,所以我怎麼可以發送一個大文件的部分到服務器?

+0

1.修改您的客戶端JS代碼的文件拆分成塊,比大小不超過2MB小。 2.修改您的服務器端代碼以瞭解#1並重建該文件。 – Sammitch 2013-02-20 18:45:42

+0

修復這一點在PHP方面是可取的,因爲它將與所有客戶端兼容,無論是否實現了JavaScript。基於JavaScript的解決方法只能作爲最後的手段。 – 2013-02-20 18:49:14

回答

3

您可以使用ini_set()(僅針對您的腳本的請求的生命週期)臨時覆蓋某些php.ini值:是否可以接受?

http://php.net/manual/en/function.ini-set.php

+2

此外,一些無法使用ini_set()設置的ini值可以通過.htaccess進行設置(這些標記爲[PHP_INI_PERDIR](http://www.php.net/manual/en/configuration.changes)。 modes.php)) – 2013-02-20 18:46:27

+1

由於您無法通過ini_set()設置upload_max_filesize或post_max_size,因此上述評論似乎比此答案更有用。 – 2013-02-20 18:52:13

0

我有同樣的問題,因爲託管服務提供商不會讓我改變php.ini,但我在這裏上的使用.user.ini文件,輸入代碼的問題,你應該在你的域的根文件夾中創建。該文件看起來像php.ini,但本地運行(自PHP 5.3起可用)。在http://php.net/manual/en/configuration.file.per-user.php

更多信息,再比如說以最多上傳100MB,應在.user.ini寫:

upload_max_filesize = 100M 
post_max_size = 100M 
memory_limit = 105M 
相關問題