Avatar
roverjedla
Člen
Avatar
roverjedla:

Ahoj,

mám dotaz ohledně uploadu obrázků.
Přikládám kód, který mám pro upload obrázku do určené složky. Vše má fungovat velmi jednoduše - pomocí input type=file vyberu obrázek z počítače a po odkliknutí submitu se obrázek má uploadovat z počítače do určené složky. Vše funguje, ale je možno vkládat pouze do složky "images". Jakmile změním název složky, do které chci obrázky, hází mi to chybu, že byl přístup zamítnut apod.
Celá chyba zde: Warning: move_uploaded_fi­le(image/Unknow­n.jpg): failed to open stream: Permission denied in /Applications/XAM­PP/xamppfiles/htdoc­s/upload_img/a­.php on line 9
Zdroják zde:

<?php
if (isset($_POST['upload_img'])) {
    $file_name = $_FILES['image']['name'];
    $file_type = $_FILES['image']['type'];
    $file_size = $_FILES['image']['size'];
    $file_tmp_name = $_FILES['image']['tmp_name'];

    if ($file_name) { //if file exists
        move_uploaded_file($file_tmp_name, "images/$file_name");
    }


}
?>
<form method="post" enctype="multipart/form-data" action="">
    upload image <input type="file" name="image"><br>
    <input type="submit" value="submit" name="upload_img">
</form>

Budu moc rád za rady ohledně tohoto problému. S přesouváním obrázků pracuji prvně a jak je možné si všimnout, kód je velmi jednoduchý a je v nejprostěší vezri - čistě na vyzkoušení.

Díky za rady....

 
Odpovědět 25. července 22:52
Avatar
Odpovídá na roverjedla
Dominik Gavrecký:

Skús nastaviť chmod vyzerá to tak že ti to odmietne zápis do zložky.

Editováno 25. července 23:55
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +3 25. července 23:54
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
mara
Člen
Avatar
Odpovídá na roverjedla
mara:

Ano, zkus to, co říká Dominik. Zkus první na tu složku, kde to chceš uložit zavolat v příkazovém řádku

chmod 777 nazev_složky
Nahoru Odpovědět  -2 26. července 0:02
Co na srdci, to na Facebooku
Avatar
mkub
Redaktor
Avatar
Odpovídá na roverjedla
mkub:

nepocuvaj, co ti radia ohladne chmod, ak das chmod 777, tak ten adresar spristupnis pre vsetkych, co je bezpecnostne riziko, skor pomocou prikazu chown zmen vlastnika na uzivatela, pod ktorym bezi web server

pokial pouzivas distro zalozene na Debiane (ako napr. Ubuntu a dalsie), tak:
]code]chown -R www-data:www-data adresar[/code]
ale zmenu vlastnika musis urobit ako root

 
Nahoru Odpovědět 26. července 1:05
Avatar
roverjedla
Člen
Avatar
roverjedla:

Mně to tedy vůbec nefunguje.. Podle toho, co jsem zatím vygooglil, tak bych s tím naprosto souhlasil, ale je možné, že když si dám toto:

<?php
echo 'Current script owner: ' . get_current_user();
echo "<br>";
echo exec('whoami');
?>

a vyhodí mi to přesně tyto hodnoty:
Current script owner: jedla
daemon

může být kvůli tomu nějaký problém se zapisováním?

Dále také momentálně pracuji na macu, to tomu nijak nevadí?

A poslední otázka, jak ten chmod nejlépe zakomponovat do kódu?
Udělal jsem to takto:

<?php
if (isset($_POST['upload_img'])) {
    $file_name = $_FILES['image']['name'];
    $file_type = $_FILES['image']['type'];
    $file_size = $_FILES['image']['size'];
    $file_tmp_name = $_FILES['image']['tmp_name'];

    chmod('files/' . $file_name, 0777);

    if ($file_name) {
        move_uploaded_file($file_tmp_name, "files/$file_name");
    }


}
?>
<form method="post" enctype="multipart/form-data" action="">
    upload image <input type="file" name="image"><br>
    <input type="submit" value="submit" name="upload_img">
</form>

ale po odeslání formu opět stejné dvě chyby jako předtím + se na začátek přidala ještě jedna:
Warning: chmod(): No such file or directory in /Applications/XAM­PP/xamppfiles/htdoc­s/upload_img/c­.php on line 7

 
Nahoru Odpovědět 26. července 1:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.