2015-12-16 16 views
5

Sto provando a caricare un file utilizzando PHP! Ho provato a caricare file PNG, JPG, PDF, TXT, questi caricamenti funzionano solo quando la dimensione del file è di circa 20kb. Quando provo a caricare file in cui la sua dimensione è di circa 150 KB, stampa $_FILE error = 3 e il nome del file indica "1234.png" dove il nome_tmp è vuoto e anche l'immagine stessa! ecco il mio codiceimpossibile caricare il file a causa della dimensione

ini_set('display_errors',1); 
error_reporting(-1); 

$imageTmp = addslashes($_FILES['image']['tmp_name']); 
//$imageTmp = $_FILES['image']['tmp_name']; 
$imageOldName = addslashes($_FILES['image']['name']); 
$imageData = file_get_contents($imageTmp); 
//$imageData = base64_encode($imageTmp); 

echo 'image temp name: '. $imageTmp .' '; 
echo 'error: '. $_FILES['image']['error']. ' '; 
echo 'image name: '. $imageOldName. ' '; 
echo 'image data: '. $imageData. ' '; 
echo 'image type:'. $_FILES['image']['type']; 
echo "<pre>"; 
echo "POST:"; 
print_r($_POST); 
echo "FILES:"; 
print_r($_FILES); 
echo "</pre>"; 


$inipath = php_ini_loaded_file(); 

if ($inipath) { 
echo 'Loaded php.ini: ' . $inipath; 
} else { 
echo 'A php.ini file is not loaded'; 
} 

Ho provato soluzioni diverse, come la modifica dei valori di post_max_size = 200M e upload_max_filesize = 200M invece di 32M

Ecco è il risultato del tentativo di caricare file txt 4KB:

image temp name: /Applications/MAMP/tmp/php/phpOc7d6a error: 0 
image Name: test.txt image data: hello image type:text/plain 
POST:Array 
(
[submit] => Record Test 
) 
FILES:Array 
(
[image] => Array 
    (
     [name] => test.txt 
     [type] => text/plain 
     [tmp_name] => /Applications/MAMP/tmp/php/phpOc7d6a 
     [error] => 0 
     [size] => 405 
    ) 

) 
    Loaded php.ini: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini 

il risultato del caricamento del file PNG 127KB:

Warning: file_get_contents(): Filename cannot be empty in path/test1.php on line 10 image temp name: error: 3 image name: IMG_8807.JPG image data: image type:

POST:Array 
(
) 
FILES:Array 
(
[image] => Array 
    (
     [name] => IMG_8807.JPG 
     [type] => 
     [tmp_name] => 
     [error] => 3 
     [size] => 0 
    ) 

) 
Loaded php.ini: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini 

BTW, dopo un caricamento fallito, il server si blocca e visualizza 502 Gateway e devo riavviare Apache!

+0

Quali sono le impostazioni per la dimensione massima del file di caricamento nel php.ini? Sei sicuro di aver cambiato il php.ini giusto? Hai riavviato Apache dopo aver apportato la modifica? –

+0

ottieni il valore di 'upload_max_filesize' come' 200M' quando chiami 'phpinfo()'. – ASK

+0

@ASK yup, entrambe le dimensioni di upload max e post max sono 200 –

risposta

0

Come documentazione di PHP dice:

UPLOAD_ERR_PARTIAL is given when the mime boundary is not found after the file data. 
A possibly cause for this is that the upload was cancelled by the user (pressed ESC, etc). 

Forse:

  • permessi sono sbagliato

  • Spazio non sufficiente sul server.

  • Caricamento da iOS.

  • Questo errore può verificarsi quando si carica una cartella a causa di limitazioni del browser. Accade su Mac OS X.

Queste sono alcune cose che potresti provare. Spero che questo ti aiuti.

+0

sto usando Mac OS! lo proverò su una macchina Windows –

+0

è il tuo problema risolto – ASK

+0

prova a reinstallare il server. – ASK

Problemi correlati