Autor Zpráva
qweewq
Profil *
Ahoj,
Napsal jsem si script, který nahraje image na server => script funguje. Teď sem si do formuláře ale přidal select box, v kterém uživatel vybírá cestu kam se soubor nahraje.
Určitě v tom mám někde chybu. Když formulář odešlu = Objekt nenalezen! Požadované URL nebylo na tomto serveru nalezeno. Nemohu přijít na to co dělám špatně...
Jenom mám pochybnosti jestli mohu cestu předávat pomocí atributu value v tagu select.... ?
Přikládám script:

FORMULÁŘ:

<?php

$cesta = "images/fotografie/";
$cesty = array();
$kategories = array();
$dir_images=opendir($cesta);
 $i = 0;

while($ketegorie_img = readdir($dir_images)) {
  if ($ketegorie_img != "." && $ketegorie_img != "..")
    {
      $ketegorie_img_cesty = $cesta.$ketegorie_img."/";
      $cesty[$i] = $ketegorie_img_cesty;
      $kategories[$i] = $ketegorie_img;
      $i=$i+1;
    }
}
closedir($dir_images);  // Výsledek scriptu až sem je že v poli $cesty[] mám uložené relativní cesty ke složkám v adresři images/fotografie/. V poli $kategories[] mám ulžené názvy složek
?>
<form action="zpracuj.php" method="post" enctype="multipart/form-data">
<select name="kategorie">
<?php
foreach ($cesty as $k => $v) {
    echo "<option value=\"$v\">$kategories[$k]</option>";  // Cesty ke složkám vypisuju do atributu value a názvy složek do tagu option
}

?>
</select>

<input name="userfile" type="file" />
<input name="save" type="submit" value="Nahrat soubor" />
</form>

ZPRACUJ FORMULÁŘ:

<?
if (isset($_POST["kategorie"])) {
  $uploaddir = $_POST["kategorie"];
  if ($_POST["save"] == "Nahrat soubor") {
  #cesta na serveru
     $uploadpath = $_SERVER['DOCUMENT_ROOT']; // Zkoušel jsem k cestě přiložit cestu ke kořenovému adresáři webu, ale nepomohlo to, i když si myslím že by to tak               mělo být, nebo ne?

     $uploadfile = $uploaddir.$_FILES['userfile']['name'];

    if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) {
        echo "Soubor byl presunut z ".$_FILES['userfile']['tmp_name']." do $uploadfile<br />";
    }
}

}


Díky všem za pomoc...
ATi
Profil
Zkus
<?php
$cesta = "./images/fotografie/"; 
?>
qweewq
Profil *
Beze změny. (Soubory s formulářem a jeho zpracování mám v kořenovém adresáři webu). Ale díky
ATi
Profil
qweewq:
<?php
$uploadpath = $_SERVER['DOCUMENT_ROOT'].$cesty;
?>
Pokud dobře chápu cesty ke složkám by měly být uloženy v proměnné $cesty a ty v ukládáni obrázku savujes na docoment root, zkus to co jsem poslal.
qweewq
Profil *
V proměnné $cesty je pole s cestama ke složkám kam se soubory mohou nahrát. $cesty pak vypisuju do select boxu => uživatel si vybere kam chce soubor nahrát...
Takhle to fungovat nebude... Myslím že je někde chyba v předání vybrané cesty v select boxu scriptu který vybranou cestu převezme a tam pak nahraje požadovaný soubor.
qweewq
Profil *
EDIT: Opavdu si nikdo nevíte rady s mím problémem .... ?? Do teďka jsem na to bohužel nepřišel, proč to nejde... Mohl by mi někdo pomoct??
Bertram
Profil
qweewq:
Do teďka jsem na to bohužel nepřišel, proč to nejde...
Ahoj, už jsi zkoušel dumpnout $uploadfile?
var_dump ($uploadfile);
exit;
qweewq
Profil *
Díky moc, ani jsem nevěděl že tato funkce existuje :) Bohužel mám zatím problém s jejich vyhledáváním. Ale už to funguje :). Bylo to způsobeno tím že fce $_SERVER['DOCUMENT_ROOT'] vracela cestu která nebyla ukončená "/". Ještě jednou díky...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: