Come si può determinare la dimensione di upload del file consentita dalle impostazioni php con uno script php?Come determinare il limite massimo di upload del file in php
risposta
L'upload è limitata da tre opzioni: upload_max_filesize, post_max_size e memory_limit. Il tuo caricamento è fatto solo se non supera uno di questi.
La funzione ini_get() fornisce una piccola mano del limite e deve essere convertita per prima. Da Thx a AoEmaster per questo.
function return_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last)
{
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
function max_file_upload_in_bytes() {
//select maximum upload size
$max_upload = return_bytes(ini_get('upload_max_filesize'));
//select post limit
$max_post = return_bytes(ini_get('post_max_size'));
//select memory limit
$memory_limit = return_bytes(ini_get('memory_limit'));
// return the smallest of them, this defines the real limit
return min($max_upload, $max_post, $memory_limit);
}
Fonte: http://www.kavoir.com/2010/02/php-get-the-file-uploading-limit-max-file-size-allowed-to-upload.html
Usa ini_get
per ottenere il valore di configurazione corrente:
ini_get('upload_max_filesize')
Si può anche cambiare la dimensione in fase di esecuzione utilizzando il file .htaccess senza la necessità di modificare il file php.ini
php_value upload_max_filesize 1224M
php_value post_max_size 1224M
php_value max_execution_time 3000
php_value max_input_time 3000
copiare il codice e mettere la vostra file, quindi archiviare quel file con il file indice, quindi si esegue il progetto è anche in grado di caricare file 1GB
per ulteriori dettagli read this article
Questa non è una risposta alla domanda ... –
È possibile impostare Dimensioni massime file caricare con ini_set()
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
o usando il file .htaccess
php_value upload_max_filesize
php_value post_max_size
Alcune di queste impostazioni possono essere modificate all'interno di uno script .php utilizzando ini_set, mentre altre no. Vedi http://php.net/manual/en/ini.list.php per l'elenco completo. Per esempio post_max_size dice: "PHP_INI_PERDIR \t PHP_INI_SYSTEM in PHP <= 4.2.3 Disponibile da PHP 4.0.3." Al fine di decifrare cosa significa "PHP_INI_PERDIR" significa, vedere http://php.net/manual/en/configuration.changes.modes.php PHP_INI_PERDIR \t iscrizione può essere impostata in php.ini, .htaccess, httpd. conf o .user.ini (dal PHP 5.3) Quindi post_max_size non può essere impostato in uno script PHP tramite ini_set(). –
function return_bytes($val)
{
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last)
{
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
function get_upload_max_filesize()
{
$max_upload = return_bytes(ini_get('upload_max_filesize'));
$max_post = return_bytes(ini_get('post_max_size'));
return min($max_upload, $max_post, $memory_limit);
}
Un po 'più di una spiegazione oltre a un blocco di codice sarebbe molto più utile. –
Scusa se sono francese, non riesco a spiegarlo in inglese. Voglio solo aiutare e condividere la mia soluzione. – AoEmaster
Alternativa molto simile: http://stackoverflow.com/a/22500394/1227297 –
Ecco una singola funzione, attuare l'idea originale da AoEmaster . La funzione restituisce numero intero (quantità di byte).
function _GetMaxAllowedUploadSize(){
$Sizes = array();
$Sizes[] = ini_get('upload_max_filesize');
$Sizes[] = ini_get('post_max_size');
$Sizes[] = ini_get('memory_limit');
for($x=0;$x<count($Sizes);$x++){
$Last = strtolower($Sizes[$x][strlen($Sizes[$x])-1]);
if($Last == 'k'){
$Sizes[$x] *= 1024;
} elseif($Last == 'm'){
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
} elseif($Last == 'g'){
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
} elseif($Last == 't'){
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
$Sizes[$x] *= 1024;
}
}
return min($Sizes);
}
Se lo si desidera, è possibile combinarlo con la seguente funzione che rende l'output come testo leggibile.
function _Byte2Size($bytes,$RoundLength=1) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte
if($bytes < $kb) {
if(!$bytes){
$bytes = '0';
}
return (($bytes + 1)-1).' B';
} else if($bytes < $mb) {
return round($bytes/$kb,$RoundLength).' KB';
} else if($bytes < $gb) {
return round($bytes/$mb,$RoundLength).' MB';
} else if($bytes < $tb) {
return round($bytes/$gb,$RoundLength).' GB';
} else {
return round($bytes/$tb,$RoundLength).' TB';
}
}
usarlo in questo modo:
echo 'Max allowed upload size: '._Byte2Size(_GetMaxAllowedUploadSize());
Un risultato potrebbe essere:
massima consentita dimensioni upload: 500 MB
- 1. Come inserire il limite massimo in un javascript?
- 2. PHP upload S3 upload
- 3. PHP, Zend Framework: come impostare il file di caricamento massimo?
- 4. scopo del numero massimo in php & mysql
- 5. Come determinare l'età del file usando PHP?
- 6. Limite massimo di ManyToManyField
- 7. ActiveRecord: selezionare il limite massimo
- 8. Come convalidare il numero massimo di file prima del caricamento?
- 9. Numero massimo di upload di file consentite è stato superato
- 10. Upload file in PHP utilizzando REST
- 11. Algoritmo per determinare il massimo divertimento
- 12. Limite massimo di MultipartFile nell'innesto a molla
- 13. Come determinare l'allineamento massimo richiesto in C99
- 14. Modifica del limite del numero massimo di pthreads da un'applicazione
- 15. File Upload Utilizzando AngularJS con script del server PHP
- 16. Come posso determinare il valore massimo di un pid_t?
- 17. Seleziona il limite massimo 1 dal gruppo
- 18. Limite di dimensioni file SharePoint
- 19. upload file wcf
- 20. Come posso ottenere il contenuto del file caricato in PHP?
- 21. Drag & Drop Upload di file
- 22. come impostare un limite massimo di dimensioni per i download di php curl
- 23. Limite massimo della memoria dell'applicazione in iPad?
- 24. PHP: come determinare se il browser supporta javascript in PHP?
- 25. Android Come impostare il limite massimo "parola" su EditText
- 26. Qual è il limite massimo per group_concat_max_len in MySQL?
- 27. Il callback dell'avanzamento mostra sempre il 100% di upload nel plug-in jquery-file-upload
- 28. come risolvere l'errore di upload del file nel postino?
- 29. Determinare il numero massimo di colonne da sqlite3
- 30. Come rimuovere il limite di tempo CURL in PHP?
Va notato che questo non tiene conto di stenografia notazione in file ini, quindi se hai un limite di "64M" verrà analizzato come 64. Meglio per convertire tutti in byte prima di confrontare. –
Sono d'accordo con Brady, la maggior parte dei file ini che vedo ora usano la notazione abbreviata. –
Vedere questa conversione http://stackoverflow.com/questions/13076480/php-get-actual-maximum-upload-size – Shane