Autor | Zpráva | ||
---|---|---|---|
Adam16 Profil |
Zdravim,
viete mi niekto poradit... potreboval by som zapisat obrazok do mysql a nejde mi to nejak v db mam nastavený typ longblob echo'<form action="pridat.php" method="POST"> <p>Obrázok:<br> <input type="file" name="obrazok"><br></p> <p><input type="submit" name="pridat" value="Pridať"></p> </form>'; if($_POST['pridat']) { $obrazok = $_POST['obrazok']; if($obrazok) { mysqli_query($con, "INSERT INTO obrazky (obrazok) VALUES ('$obrazok')"); echo "<p><font color='blue'>obrazok nahrany</font></p>"; } else { echo "<p><font color='red'>chyba</font></p>"; } } |
||
Keeehi Profil |
1) Uploadované soubory jsou v proměnné
$_FILES
2) Formulář by měl mít i atribut enctype='multipart/form-data'
3) Je potřeba ošetřit to vkládání do databáze. Teď tam máš bezpečnostní díru. |
||
Adam16 Profil |
Keeehi:
diky teraz by neviem prist na to ako ho vypisat... tu bezpčnost si poriešim $vysledok = mysqli_query($con, 'SELECT * FROM obrazky WHERE id=1'); $riadok = mysqli_fetch_array ($vysledok); $obrazok = $riadok['obrazok']; echo "<img src='" . $obrazok . "'>"; |
||
Keeehi Profil |
#4 · Zasláno: 18. 8. 2017, 18:03:06
A proč to vlastně ukládáš do databáze? Nebylo by lepší ten obrázek jen uložit na disk a do databáze uložit cestu k němu? Pak by ti ten výpis takto fungoval. Ale momentálně se do src snažíš nacpat binární data toho obrázku, ne cestu k němu.
|
||
Adam16 Profil |
#5 · Zasláno: 18. 8. 2017, 18:16:28
Keeehi:
ano bolo by ale neviem ako mam ulozit cestu |
||
Keeehi Profil |
#6 · Zasláno: 19. 8. 2017, 06:31:44
Tak v databázi bude potřeba změnit datový typ sloupce na něco vhodnějšího, třeba varchar.
Při zpracování uploadu a ukládání obrázku na správné místo na disku někdy použiješ funkci move_uploaded_file. No a druhý parametr je cesta, kde bude soubor uložený. No a zrovna tuto informaci chceš uložit do databáze. Pokud to budeš všechno dávat do jedné složky, tak ti stačí jen jméno souboru. To budeš znát kvůli přesunu taky. |
||
Časová prodleva: 6 let
|
0