Autor | Zpráva | ||
---|---|---|---|
Morlon Profil * |
#1 · Zasláno: 30. 8. 2011, 14:15:32
Zdravím,
mám eshop založený na prestashopu, a při pokusu nahrání jakéhokoli souboru (obrázek, PDF,...) mi skočí interní chyba serveru: PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0 doma mi to bez problému jede, takže předpokládám že to bude něco v nastavení serveru nebo php poradíte někdo? |
||
Zechy Profil |
#2 · Zasláno: 30. 8. 2011, 14:25:24
Zřejmě máš CHMOD pro složku kam to nahráváš nastavenej na 644, v tom případě PHP může data jenom číst, né je vytvářet.
|
||
Morlon Profil * |
#3 · Zasláno: 30. 8. 2011, 14:28:08
tak tomu tak trošku nerozumím :/
poradíš jak to přenastavit? |
||
Zechy Profil |
#4 · Zasláno: 30. 8. 2011, 14:30:04
Stačí změnit práva k složce na WebFTP u hostingu nebo to zvládne třeba i Total Commander, jestli si pamatuju dobře tak Soubor > Změnit práva.
|
||
Morlon Profil * |
#5 · Zasláno: 30. 8. 2011, 14:37:59
no ještě bych měl asi dodat že mi ten server běží na Windows web server 2008 a IIS kde php je dodělaný přes FastCGI, a práva mám tam mám nastavený jak na čtení tak i zápis
|
||
Davex Profil |
#6 · Zasláno: 30. 8. 2011, 19:51:20 · Upravil/a: Davex
Morlon:
„práva mám tam mám nastavený jak na čtení tak i zápis“ Pouze pro tebe nebo i pro uživatele pod kterým se spouští PHP? „unable to create a temporary file“ Je také správně nastavený a vytvořený adresář pro dočasné soubory (upload_tmp_dir)? |
||
peta Profil |
#7 · Zasláno: 31. 8. 2011, 09:22:39 · Upravil/a: peta
Zkus tohle, co to vypise za prava a cisla.
<?php function isRequest($_name,$_def="",$_format = "PGS") { $formats = array ( 'P'=>'_POST', 'G'=>'_GET', 'C'=>'_COOKIE', 'S'=>'_SESSION', 'R'=>'_REQUEST', 'F'=>'_FILES', ); preg_match_all("/[".implode('',array_keys($formats))."]/", $_format, $matches); foreach ($matches[0] as $value) { if (isset($GLOBALS[$formats[$value]][$_name])) { return $GLOBALS[$formats[$value]][$_name]; } } return $_def; } function getini($name,$default='-') { return @ini_get($name) ? ini_get($name) : (get_cfg_var($name) ? get_cfg_var($name) : $default); } // --- dir info --- //user_dir | open_basedir $dir = array( 'base' => getini('open_basedir',''), //home 'cwd' => getcwd(), // /home/didou 'upl_tmp' => getini('upload_tmp_dir'), //temp 'this' => urldecode(isRequest('folder','','PG')) ); $limit = array( 'upload' => getini("upload_max_filesize"), // upload size 'post' => getini("post_max_size"), // post size 'memory' => getini("memory_limit") // memory limit size ); $dir['to'] = $dir['this'] ."/"; echo '<pre>'; print_r($limit); print_r($dir); //--- function formatPerm($perm) { return substr(sprintf('%o', $perm), -3); } function getFormatPerm($path) { return formatPerm(fileperms($path)); } echo ' <table> <tr><td>BASE</td> <td>'.$dir['base'] .'</td><td>'.getFormatPerm($dir['base']) .'</td></tr> <tr><td>CWD</td> <td>'.$dir['cwd'] .'</td><td>'.getFormatPerm($dir['cwd']) .'</td></tr> <tr><td>upload TMP</td> <td>'.sprintf("%-38s",$dir['upl_tmp']) .'</td><td>'.getFormatPerm($dir['upl_tmp']).'</td></tr> <tr><td>upload move</td><td>'.sprintf("%-38s",$dir['to']) .'</td><td>'.getFormatPerm($dir['to']) .'</td></tr> '; ?> Me to treba vypisuje tohle, ale this a to si nevsimej, to prave predelavam. Array ( [upload] => 2M [post] => 8M [memory] => 128M ) Array ( [base] => [cwd] => C:\wamp\www\rs0b\filemanager [upl_tmp] => c:/wamp/tmp [this] => [to] => / ) BASE 0 CWD C:\wamp\www\rs0b\filemanager 777 upload TMP c:/wamp/tmp 777 upload move / 777 |
||
Časová prodleva: 14 let
|
0