Autor | Zpráva | ||
---|---|---|---|
jezedak Profil * |
#1 · Zasláno: 21. 1. 2009, 21:14:00
Zdravím. Mám problém s nastavením chmod pro uploadované obrázky.
Můj zdrojový kód vypadal takto: if (is_uploaded_file($_FILES["imgf"]["tmp_name"])): $nazev=$_FILES["imgf"]["name"]; $typ = $_FILES["imgf"]["type"]; @rename($_FILES['imgf']['tmp_name'],'./images/'.$_SESSION[idinz].'/'.$nazev.''); ...soubor se mi sice nahrál na server, ale chmod se nastaví na 0600. a tento soubor nejde zkopírovat ani vymazat... proto jsem se pokoušel za poslední řádek přidat toto: chmod("/img_inz/'.$SESSION[idinz].'/'.$nazev.'", 0777); ...bohužel výsledek je takový, že se mi už soubor neuloží vůbec..:-( |
||
SwimX Profil |
#2 · Zasláno: 21. 1. 2009, 21:18:10
jezedak
zkus před to dát umask(0000) - http://cz.php.net/umask |
||
Medvídek Profil |
#3 · Zasláno: 21. 1. 2009, 21:23:17
ve funkci chmod nelze použít práva 777 :) Zkus ftp_chmod :)
|
||
jezedak Profil * |
#4 · Zasláno: 21. 1. 2009, 21:32:12
A ouha... Víš já nejsem moc zdatný programátor a spíše se teprve učím. Abych se přiznal tak nevím jak bych to napsal:-( Nemohl bys mi to prosím nějak sesmolit? Taky jsem si říkal jestli nemůže být problém už se složkou, kterou pojmenovávám podle ID. Tu vytvářím takto:
mkdir('./img_inz/'.$_SESSION[idinz].''); Teprve poté volám kód, který jsem napsal výše. díky |
||
Medvídek Profil |
#5 · Zasláno: 21. 1. 2009, 21:37:08 · Upravil/a: Medvídek
jezedak
Já to dříve také nevěděl, ale řešil sem podobný problém :) <?php // FTP chmod přes FTP připojení $ftpUserName = 'username'; $ftpUserPass = 'userpass'; $ftpServer = 'ftp.example.com'; $ftpConn = ftp_connect($ftpServer); if (!$ftpConn) { die("Nelze se připojit k $ftpServer"); } if (ftp_login($conn_id, $ftpUserName, $ftpUserPass)) { echo "Připojen jako: $ftpUserName @ $ftpServer"; } else { echo "Nelze se připojit jako: $ftpUserName"; ftp_close($ftpConn); die("Closed connection to $ftpServer"); } //Změna CHMOD na 777 echo ftp_chmod($ftpConn, 077, $ftpFilename) ? "CHMOD v pořádku vytvořen!" : 'Chyba'; // Zavření spojení ftp_close($conn_id); ?> |
||
jezedak Profil * |
#6 · Zasláno: 21. 1. 2009, 21:40:17
Já jsem tam teď zkusil dát:
$file='./img_inz/'.$_SESSION[idinz].''; ftp_chmod($nazev, 0777, $file); a soubor se mi už uloží ale furt má nastaveno 600 |
||
Medvídek Profil |
#7 · Zasláno: 21. 1. 2009, 22:23:40
a připojil si se k ftp atd ? Nebo si tam dal pouze to ftp_chmod($nazev, 0777, $file);
|
||
jezedak Profil * |
#8 · Zasláno: 21. 1. 2009, 23:13:18
jen tohleto... ale kdybych nebyl pripojeny tak by se mi to neulozilo ne?
|
||
Medvídek Profil |
#9 · Zasláno: 21. 1. 2009, 23:24:08
Musíš zkopírovat kompletní skript, co jsem psal výše. :)
|
||
bohyn Profil |
#10 · Zasláno: 22. 1. 2009, 11:20:54
- uploadovane soubory se presouvaji pres move_uploaded_file()
- Pro cteni a zapis staci nastavit prava na 0666. |
||
SwimX Profil |
#11 · Zasláno: 22. 1. 2009, 14:06:43
bohyn
„Pro cteni a zapis staci nastavit prava na 0666.“ pro čtení a zípis možná, ale jezedak říká: „soubor se mi sice nahrál na server, ale chmod se nastaví na 0600. a tento soubor nejde zkopírovat ani vymazat..“ |
||
bohyn Profil |
#12 · Zasláno: 22. 1. 2009, 14:41:28
SwimX
Pricinu bych hledal, jak uz sem psal vyse, v techto bodech: 1) na nekterych servrech pry nejde nastavit 0777 (?), takze kdyz zkusi 0666 tak se to treba povede. 2) na presouvani uploadovanych souboru pouziva celkem netradicni nastoje. Soubor v tempu muze mit jineho vlastnika nez jaky je vlastnik procesu PHP (proto se souborem 0600 nejde nic delat). |
||
Časová prodleva: 15 let
|
0