Autor Zpráva
Lojzik
Profil *
ahojte mám takový menší problémek hledal jsem ponetu ale řešeí jsem nenašel snad někdo poradíte... tenhle skript uploaduje soubory na sserver přičemž do databáze se ukládá název obrázku který pak jednoduše vytahuji pro zobrazení, problém je v mazání z databáze se sice smaže název obrázku ale nefunguje funkce unlink tzn. nesmaže z adresáře ale vypíše hlášku:
Warning: unlink(picts/): Is a directory in /3w/czweb.org/w/webovestranky/admin.php on line 490


if (isset($_POST['smaz'])) {mysql_query("delete from obrazek")or print mysql_error();
unlink ("picts/$row[obr]");
}

elseif (isset($_FILES['fupload']))
{
if($_FILES['fupload']['type']=="application/octet-stream"){ // Pokud soubor bude mít kocovku .jpg, provede se upload
}else{
$slozka = "picts"; // Zde si napište svojí složku, do které se budou soubory ukládat (bez lomítka)
$cil = $slozka . "/" .$_FILES['fupload']['name']; // Toto je proměnná $cil, která obsahuje adresář, kde se má soubor uploadovat a taky název souboru.
$nazev_souboru = $_FILES['fupload']['tmp_name']; // Zjistí dočastné umístění souboru
$copy = move_uploaded_file($nazev_souboru, $cil) // A tady zkopíruje soubor z dočastného umístění do cílového souboru a složky
or die ("Přenesený soubor nelze zkopírovat"); // A pokud se nepovede, tak vypíše tuto hlášku
chmod ($cil, 0777); // Ještě na soubor vyhodíme funkci chmod, která změní jeho práva na maximum, pokud by soubor psal chybu změňte 0644 na 0777
if($copy == true){ // Pokud se kopírování provede úspěšně


mysql_query ("insert into obrazek (obr) value ('".$_FILES['fupload']['name']."')");



}

}
}

$obr=mysql_query("select obr from obrazek")or print mysql_error();
$row=mysql_fetch_array($obr);

echo"
<fieldset style=\"position:relative;top:6550;left:20;width:310\">
<form action=\"admin.php\" method=\"post\" enctype=\"multipart/form-data\">
<input type=\"file\" name=\"fupload\"><br>
<input type=\"submit\" value=\"Nahrát\">
<input type=\"submit\" name=\"smaz\" value=\"Smazat\">
<div style=\"position:relative;top:-20;left:170\">L <img width=\"100\" height=\"100\" src=\"picts/$row[obr]\"></div>
</form>
</fieldset>
Matty
Profil
Lojzik
Chyba ti řiká, že se to nedá smazat, protože to je složka. Zdá se, že to netahá informace z databáze.
Jentak, zkus zápis unlink ("picts/".$row[obr]);
Lojzik
Profil *
tak to taky nefachá hláška pořád stejná....
Lojzik
Profil *
Když to napíšu třeba takhle
unlink ("picts/'".$row[obr]."'");
tak to vypíše:
Warning: unlink(picts/''): No such file or directory in /3w/czweb.
Matty
Profil
Lojzik
Existuje v té určité tabulce sloupec "obr"? Podle tohodle to vypadaá, že ne, protože je proměnná prázdná.
Lojzik
Profil *
jasně že jo to by nefungovalo mysql_query ("insert into obrazek (obr) value ('".$_FILES['fupload']['name']."')"); jenže to funguje normálně ono to fakt nějakým způsobem nečte z databáze protože když místo proměnné zadám do funkce přímo názav souboru tak ho to smaže...
include "prihlasdb.php"; mam na zacatku skriptu .-((
Lojzik
Profil *
Tak už jsem na to skoro přišel :-) říkám si jak můžeš mazat něco ze složky proměnou která už je v databázi smazaná??? Tak jsem to takhle prohodil jenže pořád nic...:-(
if (isset($_POST['smaz'])) {unlink ("picts/.$row[obr]");
mysql_query("delete from obrazek");
}
Matty
Profil
Lojzik
Pořád ta hláška? Teď si všímám, dej toho obra radši do apostrofů.
V tomhle zápisu máě chybu: unlink ("picts/".$row['obr']);
Lojzik
Profil *
taky nic pořád je directory dzá se že to je pořádně hluboko zakopanej hafan .-))
Lojzik
Profil *
fakt nikdo neví??? Mne uz snad z toho hrabne :-)
Lojzik
Profil *
Chlapci koukněte na to prosím někdo kdo tomu opravdu rozumí já už jsem fakt v koncích aspon nakopnout trochu...díky
Lojzik
Profil *
vyřešeno tohle:

$obr=mysql_query("select obr from obrazek")or print mysql_error();
$row=mysql_fetch_array($obr);

musí být nad tímhle:

if (isset($_POST['smaz'])) {mysql_query("delete from obrazek")or print mysql_error();
unlink ("picts/$row[obr]");
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0