Autor | Zpráva | ||
---|---|---|---|
SwimX Profil |
#1 · Zasláno: 27. 2. 2011, 23:39:01
Dobrý den,
řeším do práce jeden takový problém s uploadem velkých souborů. Pro upload malých souborů, naprosto v pořádku (do 50MB) při uploadu například 500MB se soubor nauploaduje (podle prohlížeče) a pak se ve formuláři objeví prázdné políčko pro výběr souboru. Stránka se tváří, že video nebylo nikdy uploadováno, žádná chyba, vubec nic. Wordpress stránka -> administrace -> formulář pro upload videa <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"><br> <button type="submit" name="upload" >Nahrát video</button> </form> php kód pro upload a přenos na druhý server (kde se video konvertuje) set_time_limit ( 7200 ); session_start(); $id = $_GET['post']; if ( !id || !$_SESSION['upload'][$id] || !$_GET['kod']) { echo "Nepovoleny pristup"; exit; } if ( ($_FILES['file']['size']/1024/1024) > MAX_SIZE_VIDEO ) { echo "$kodovani<p style='color:red;'>Video je příliš velké<br>"; form_video(); exit; } preg_match('~\.([^\.]+)$~i', $_FILES['file']['name'], $matches); $ext = strtolower ( $matches[1] ); if ( ! in_array( $ext, $valid_ext ) ) { echo "$kodovani<p style='color:red;'>Video není ve správném formátu<br>"; form_video(); exit; } $file = "../../data/".PREFIX.$id.".".$ext; move_uploaded_file($_FILES['file']['tmp_name'], $file) or die ("$kodovani<p>Video se nepodařilo nahrát.<br><a href='$path'>Znovu</a></p>"); // set up basic connection $ftp_server = "************"; $ftp_user_name = "************"; $ftp_user_pass = "**************"; $error_message = "$kodovani Nepodařilo se připojit k servru pro konvert videa, kontaktujte prosím admina! <br><a href='$path'>Znovu</a> "; // set up a connection or die $conn_id = ftp_connect($ftp_server); if ( ! $conn_id ) { echo $error_message; @unlink( $file ); exit; } // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if ( !$login_result ){ echo $error_message; @unlink( $file ); ftp_close($conn_id); exit; } $remote_file = $id.".".$ext; if ( ! ftp_pasv($conn_id, true) ) { echo $error_message; @unlink( $file ); ftp_close($conn_id); exit; } // upload a file if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) { @unlink( $file ); mysql_query("INSERT INTO $table SET id_post = $id, status = 0 "); echo "$kodovani<p>Vaše video bylo úspěšně nahráno. Pokračujte v upravách příspěvku, video se konvertuje</p>"; ftp_close($conn_id); } else { echo $error_message; @unlink( $file ); ftp_close($conn_id); exit; } v htacces mám php_value upload_max_filesize 2000M což se mi zobrazí i při phpinfo() Nevíte čím to může být? |
||
Davex Profil |
#2 · Zasláno: 28. 2. 2011, 17:26:00
|
||
SwimX Profil |
#3 · Zasláno: 28. 2. 2011, 23:58:43
Davex:
no ono se to tak daleko ani nedostane, nechal jsem si vypasat print_r($_FILES) |
||
Aesir Profil |
#4 · Zasláno: 1. 3. 2011, 09:48:54
SwimX:
Jakou hodnotu má post_max_size ? |
||
SwimX Profil |
#5 · Zasláno: 1. 3. 2011, 15:47:45
|
||
Aesir Profil |
#6 · Zasláno: 1. 3. 2011, 16:26:37
SwimX:
Tak to bude zřejmě tím, je doporučované aby post_max_size bylo o něco málo větší hodnotu než upload_max_filesize, protože se předpokládá, že kromě souborů můžou být v postu nějaká další data (například z běžného formuláře). Takže pokud bude upload_max_filesize na 2000M, tak post_max_size by mělo stečit bezpečně třeba 2005M |
||
SwimX Profil |
#7 · Zasláno: 1. 3. 2011, 18:40:55
Aesir:
a memory_limit také? |
||
Aesir Profil |
#8 · Zasláno: 1. 3. 2011, 19:52:06
SwimX:
Pokud soubor nenačítáte do paměti (což samotný upload/přesun v rámci filesystému nedělá), tak není potřeba. |
||
SwimX Profil |
#9 · Zasláno: 2. 3. 2011, 00:04:33
Aesir:
aktuální htaccess php_value upload_max_filesize 2000M php_value post_max_size 2005M php_value memory_limit 2010M nyní se mi stalo, že to nepřešlo přes fci move_uploaded_file |
||
Aesir Profil |
#10 · Zasláno: 2. 3. 2011, 11:37:34
SwimX:
bez detailů těžko říct, vrací to nějakou chybu? je něco v logu? co safe_mode/open_basedir? |
||
SwimX Profil |
#11 · Zasláno: 3. 3. 2011, 15:38:38
Aesir:
Už se mi daří uploadovat soubory kolem 150MB, na 500MB mi to padá na funkci move_uploaded_files a v $_FILES[0][error] je 7. |
||
Aesir Profil |
#12 · Zasláno: 3. 3. 2011, 15:59:41
SwimX:
Což znamená "Failed to write file to disk.": Error Messages Explained, takže to bude chtít zapátrat tímto směrem. |
||
SwimX Profil |
#13 · Zasláno: 3. 3. 2011, 16:01:01
Aesir:
Tímto směrem == poslat dotaz na server, proč mě nenechají zapsat tak velké soubory..? |
||
SwimX Profil |
#14 · Zasláno: 4. 3. 2011, 20:18:57
server: na serveru je /tmp ktery ma velikost pouze 1GB, nyni jsme provedli jeho procisteni, takze
by nemel byt problem uploadovat soubor o velikosti cca 900MB. Aesir: Děkuij za pomoc |
||
Časová prodleva: 13 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0