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
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
Keeehi:

ano bolo by ale neviem ako mam ulozit cestu
Keeehi
Profil
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.

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: