Ho quasi terminato un piccolo script in PHP che permette il download e l’upload di file da un dominio. Il locale non riesco a superare i 700MB. Ho provato a caricare dell’htdocs di XAMPP un film di 1,2GB ma lo script mi da questo errore:
Warning: POST Content-Length of 1255496295 bytes exceeds the limit of 1073741824 bytes in Unknown on line 0
Ho anche provato a settare nel php.ini le seguenti variabili:
memory_limit=13072M
default_socket_timeout=86400
eppure il file da 1.2GB non riesco proprio a caricarlo. Il mio pc ha 6 core e 16GB di memoria!
Per quanto riguarda il server reale (hosting condiviso da circa 20 euro anno) il problema è la mia connessione che raggiunge come massimo i 0.34 Mbps e il timeout limitato settato dal provider. Su quest’ultimo riesco al massimo a caricare 10MB poi si pianta tutto.
Le mie richieste sono 3:
1.Come devo impostare il mio XAMPP per riuscire a caricare il file da 1.2GB?
2.Come devo modificare il mio script per riuscire a caricare file molto più grandi di quelli attuali?
3.Con php si possono raggiungere livelli di performance simili al servizio gratuito wetransfer?
Lo script molto deludente che utilizzo è questo:
Codice PHP:
if (file_exists($_FILES['upload']['tmp_name'])) {
if (!is_uploaded_file($_FILES['upload']['tmp_name'])) {
$error = 'Non ci sono file caricati.';
include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.php';
exit();
}
$uploadfile = $_FILES['upload']['tmp_name'];
$uploadname = time() . $_FILES['upload']['name'];
$uploadname = str_replace(' ', '_', $uploadname);
$uploadtype = $_FILES['upload']['type'];
$uploaddesc = $_POST['desc'];
$url = $_SERVER['DOCUMENT_ROOT'] . "/$nome_cartella_download/" . $uploadname;
try {
copy($uploadfile, $url);
} catch (Exception $e) {
$error = 'Copia del file sul server non riuscita.';
include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.php';
exit();
}
} else {
$uploadname = '';
$uploadtype = '';
$uploaddesc = '';
}
Velocità di connesione calcolata con questo sito: http://www.speedtest.net/