• 21 odgovora
  • 17.350 pregleda
KAKo ubaciti sliku u MySQL bazu 03.02.2007. u 09:02 · pre 240 meseci #1
Ljudi imam problem da ubacim sliku u MySQL bazu i da je posle izvucem.
Stvarno mi je potreban savet kako to da uradim.
Re: KAKo ubaciti sliku u MySQL bazu 03.02.2007. u 12:17 · pre 240 meseci #2
Citat:
sem13: Ljudi imam problem da ubacim sliku u MySQL bazu i da je posle izvucem.
Stvarno mi je potreban savet kako to da uradim.

Ja nisam programer, ali par osnovniih ideja:
- MySQL ne zna za sliku kao takvu. Sadrzaj samog fajla sa slikom, tough, mozes smestiti u BLOB polje. Ne bi bilo zgoreg da negde u toj tabeli drzi i par informacija o samoj slici, mada to vec imas i u fajlu... cisto bice ti lakse.
- Sliku ces izvuci prostim citanjem tog BLOB polja. Snimanje na disk je potom trivijalno, posebno ako si sacuvao ime... Ako hoces sliku na web strani, trebalo bi da je sasvim dovoljno da je "otstampas" na stdout i da to das web serveru.... Koliko se ja secam perl-a (valjda je slicno), mislim da ces morati da das i content type pre same slike. Tip slike ti pise u fajlu (magic number), ako ga vec nisi sacuvao u okviru informacija u slici. :)
- Znas, Google je tvoj prijatelj. Ne sumnjam da ces JAKO lako naci detalje za koji god jezik zelis da koristis za svega par minuta, a verovatno i pogodnu biblioteku...
Potpis
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
Re: KAKo ubaciti sliku u MySQL bazu 20.02.2007. u 12:53 · pre 239 meseci #3
Ovako

Prvo kreiraj tabelu u bazi gde trebas smestiti sliku ili bilo koji drugi fajl koji treba da bude upload-ovan kao attachment.

CREATE TABLE uploads (id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50) );


///Posle toga napravis formular.///
<form method="post" action="upload.php" enctype="multipart/form-data">
Description:<br>
<input type="text" name="form_description" size="40">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>

///ovo ti je upload.php koji vrsi upload fajla///
<?php
mysql_connect("your.server.com","username","password");
mysql_select_db("database_name");
$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO uploads (description, data,filename,filesize,filetype) ". "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysql_insert_id();
print "<p>File ID: <b>$id</b><br>";
print "<p>File Name: <b>$form_data_name</b><br>";
print "<p>File Size: <b>$form_data_size</b><br>";
print "<p>File Type: <b>$form_data_type</b><p>";
print "To upload another file <a href=http://www.yoursite.com/yourpage.html> Click Here</a>";
?>

///a ovako izvlacis fajl///
<?php
mysql_connect("your.server.com","username","password");
mysql_select_db("database_name");
$query = "SELECT data,filetype FROM uploads where id=$id";
$result = MYSQL_QUERY($query);
$data = MYSQL_RESULT($result,0,"data");
$type = MYSQL_RESULT($result,0,"filetype");
Header( "Content-type: $type");
print $data;
?>

Nadam se da sam bila jasna. Ako nesto ne razumes javi.



Re: KAKo ubaciti sliku u MySQL bazu 20.02.2007. u 14:37 · pre 239 meseci #4
@djovan01: Mozes li mi navesti nekoliko argumenata, zasto bi bilo bolje smjestati slike u bazu, a ne u neki direktorijum na file systemu, a u bazu samo putanju do tog fajla?

@Moderator: Da li se trebaju brisati poruke u kojima se daje pogresan pristup (pogresno rjesenje) koristenju baze podataka?
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Re: KAKo ubaciti sliku u MySQL bazu 25.02.2007. u 14:30 · pre 239 meseci #6
@Dejan: Sto se mene tiche, tema nema veze toliko sa bazom, kao ni sa mySQL, princip je svagdje manje vishe isti - vishe zavisi od programskog jezika koji se koristi.
Osim toga, ne vidim sta je 'pogresno rjesenje'? (nisam provjeravao ovaj HTML/PHP kod, mozda tamo ima gresaka)?
Potpis
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
Re: KAKo ubaciti sliku u MySQL bazu 03.06.2008. u 18:29 · pre 223 meseci #7
morao sam da aktiviram temu da bih naucio ovo za pocetak ali kod ne radi prijavljuje greske

Code:

Notice: Undefined variable: form_data in G:\bkSite\essql1\upload.php on line 29

Notice: Undefined variable: form_data in G:\bkSite\essql1\upload.php on line 29

Warning: fread(): supplied argument is not a valid stream resource in G:\bkSite\essql1\upload.php on line 29



i jos neke a evo i linije 29
Code:

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO uploads (description, data,filename,filesize,filetype) ". "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysql_insert_id();


Re: KAKo ubaciti sliku u MySQL bazu 04.06.2008. u 12:07 · pre 223 meseci #8
Sliku ne treba cuvati u MYSQL bazi, u bazu idu samo tekstualni podaci, ne znam odakle ti ideja da celu sliku stavis u bazu. Ako sliku stavis u bazu, ona će da poveca bazu za svoju količinu u KB, sto se naravno ne preporucuje.

Sliku stavljas u neki diretktorijum, i dodeljujes joj neko jedinstveno ime, da ne bi bilo mešanje ili slučajnog brisanja slike nekom drugom slikom.
Možeš ime slike da vežeš za ID podatka, recimo ako je slika vezana za vest, a vest ima ID=5, sliku preimenujes u recimo 5_imeslike.jpg.
Možeš na ime slike recimo da dodaš timestemp, 1177743600_imeslike,jpg ....

U bazu upisujes u recimo varchar polje samo ime slike npr. 1177743600_imeslike,jpg. ili celu putanje /slike/1177743600_imeslike,jpg i nema problema.

Inace moj drugar, koje drzi neki hosting je imao proglem sa programiranjem svog klijenta koji je drzao slike u bazi, baza je bila velika, posle izvesnog vremena oko 500MB i morao je da mu vrati pare i klijenta je obavestio da zbog velicine baze ne moze da hostuje njegov sajt.
Potpis
www.wwwindustry.net - www.xgcdb.com
Re: KAKo ubaciti sliku u MySQL bazu 04.06.2008. u 14:47 · pre 223 meseci #9
Slazem se da sliku ne treba drzati u bazi vec samo njenu adresu.Mislio sam da prvo naucim ovu varijantu pa posle bolju varijantu jer sam jos u fazi ucenja.Uspeo sam da smesti m sliku u bazu ali sa drugim kodom ali kada je citam dobijem samo karaktere.
Pozdrav
Re: KAKo ubaciti sliku u MySQL bazu 04.06.2008. u 14:52 · pre 223 meseci #10
A zasto bi ucio odmah losiju (da ne kazem pogresnu) varijantu?
Bolje to vreme potrosi na ucenje neceg drugog, a kad bude trebalo da se slika cuva u bazi, vec ces nauciti i da se snalazis
Meni iskreno (jos) nikad zatrebalo nije...

kojim kodom je cits iz baze?
Potpis
http://norway.dakipro.com/
Re: KAKo ubaciti sliku u MySQL bazu 04.06.2008. u 17:17 · pre 223 meseci #11
Mislio sam da je tako lakse i skrpio sam neki kod. Gif format slike mi prikaže samo mesto slike i njenu veličinu, a jpg format samo karaktere. A evo i skraćenog koda:
Code:

<form name="form1" enctype="multipart/form-data" method="post" action="upload.php">
  <input type="file" name="image">  
  <input type="submit" name="Submit" value="Submit">
</form>

upload
Code:

$sql = "insert into images (id, image, image_blob) 
                  values
          (NULL, '".$_FILES['image']['name']."','".addslashes(fread(fopen($_FILES['image']['tmp_name'], "rb"),100000))."')";

mysql_query($sql) or die ("neuspesno");
echo"ok";

prikaz
Code:

while ( $row = mysql_fetch_array($query) ) { 
    $id = $row["id"];
    $image = $row["image"];
    $image_blob = $row["image_blob"];
echo"
<table width='500' border='1' align='center'>
  <tr>
    <td width='500'>redni broj slike $id $image <br></td>
  </tr>
    <td width='500'><img src='$image_blob' width='200' height='200'></td>
  </tr>
</table>";
}
Re: KAKo ubaciti sliku u MySQL bazu 05.06.2008. u 20:54 · pre 223 meseci #12
Ja sam ovako uradio:

unesi.php:

Code:

<form enctype="multipart/form-data" action="unos.php" method="post">
Slika: <br><input type="file" name="slika"><br><br>
<input type="submit" value="Upisi!">
</form>


unos.php:

Code:


...
$slika=$_FILES['slika']['name'];
...

copy($_FILES['slika']['tmp_name'], "$folder".$slika) or die ("Slika nije kopirana !!!");
mysql_connect($adresa,$username,$pass) or die('KONEKT NA HOST!!!');
mysql_select_db($baza);

mysql_db_query($baza,"insert into neka_tabela values('','$naziv','$tekst','$slika')");
echo'Uspjesno ste unjeli podatke u Bazu<br><a href=".">nazad</a>';



Sta kazete na ovaj nacin?
Re: KAKo ubaciti sliku u MySQL bazu 21.09.2020. u 09:57 · pre 74 meseci #14
I ja imam problem da uploadujem sliku i da je prikažem, može pomoć ? Hvala.

Code:
  $conn = mysqli_connect("localhost", "root", "");
    $sql = "CREATE DATABASE IF NOT EXISTS BAZA01";
    mysqli_query ($conn, $sql);
    $conn = mysqli_connect("localhost", "root", "", "BAZA01");
$sql = "CREATE TABLE uploads (id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), data (50), filename CHAR(50), filesize CHAR(50), filetype CHAR(50) )";
mysqli_query ($conn, $sql);


$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQLi_QUERY("INSERT INTO uploads (description, data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysqli_insert_id();
echo "<p>File ID: <b>$id</b><br>";
echo "<p>File Name: <b>$form_data_name</b><br>";
echo "<p>File Size: <b>$form_data_size</b><br>";
echo "<p>File Type: <b>$form_data_type</b><p>";

$conn2 = mysqli_connect("localhost", "root","", "BAZA01");
$query = "SELECT data,filetype FROM uploads where id=$id";
$result = mysqli_query ($conn2, $query);
$data = MYSQLi_RESULT($result,0,"data");
$type = MYSQLi_RESULT($result,0,"filetype");
Header( "Content-type: $type");
print $data;
?>
<form method="post" action="#" enctype="multipart/form-data">
<input type="text" name="form_description" size="40">
<br>File to upload:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>


Citat:
Notice: Undefined variable: form_data in /opt/lampp/htdocs/Login/001.php on line 17

Warning: fopen(): Filename cannot be empty in /opt/lampp/htdocs/Login/001.php on line 17

Notice: Undefined variable: form_data in /opt/lampp/htdocs/Login/001.php on line 17

Warning: fread() expects parameter 1 to be resource, bool given in /opt/lampp/htdocs/Login/001.php on line 17

Notice: Undefined variable: form_description in /opt/lampp/htdocs/Login/001.php on line 18

Notice: Undefined variable: form_data_name in /opt/lampp/htdocs/Login/001.php on line 18

Notice: Undefined variable: form_data_size in /opt/lampp/htdocs/Login/001.php on line 18

Notice: Undefined variable: form_data_type in /opt/lampp/htdocs/Login/001.php on line 18

Warning: mysqli_query() expects at least 2 parameters, 1 given in /opt/lampp/htdocs/Login/001.php on line 18

Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in /opt/lampp/htdocs/Login/001.php on line 19

File ID:

Notice: Undefined variable: form_data_name in /opt/lampp/htdocs/Login/001.php on line 21

File Name:

Notice: Undefined variable: form_data_size in /opt/lampp/htdocs/Login/001.php on line 22

File Size:

Notice: Undefined variable: form_data_type in /opt/lampp/htdocs/Login/001.php on line 23

File Type:


Fatal error: Uncaught Error: Call to undefined function MYSQLi_RESULT() in /opt/lampp/htdocs/Login/001.php:28 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/Login/001.php on line 28
Re: KAKo ubaciti sliku u MySQL bazu 21.09.2020. u 11:17 · pre 74 meseci #15
Code (php):

if (isset($_POST['submit'])) {
    // PHP code
}

// form code
 
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: KAKo ubaciti sliku u MySQL bazu 21.09.2020. u 21:07 · pre 74 meseci #19
Citat:
_Diamond_:
Dobijam istu grešku, samo što se greška pojavi kada pritisnem "submit".


Sad vidim i da svaki put kreiraš tabelu što ti vjerovatno nije cilj.
Koja je tačno linija 17?
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: KAKo ubaciti sliku u MySQL bazu 22.09.2020. u 15:08 · pre 74 meseci #20
16 if (isset($_POST['submit'])) {
17
18 $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
19 $result=MYSQLi_QUERY("INSERT INTO uploads (description, data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
20 $id= mysqli_insert_id();
21 echo "<p>File ID: <b>$id</b><br>";
22 echo "<p>File Name: <b>$form_data_name</b><br>";
23 echo "<p>File Size: <b>$form_data_size</b><br>";
24 echo "<p>File Type: <b>$form_data_type</b><p>";

Citat:
Notice: Undefined variable: form_data in /opt/lampp/htdocs/Login/001.php on line 18

Warning: fopen(): Filename cannot be empty in /opt/lampp/htdocs/Login/001.php on line 18

Notice: Undefined variable: form_data in /opt/lampp/htdocs/Login/001.php on line 18

Warning: fread() expects parameter 1 to be resource, bool given in /opt/lampp/htdocs/Login/001.php on line 18

Notice: Undefined variable: form_description in /opt/lampp/htdocs/Login/001.php on line 19

Notice: Undefined variable: form_data_name in /opt/lampp/htdocs/Login/001.php on line 19

Notice: Undefined variable: form_data_size in /opt/lampp/htdocs/Login/001.php on line 19

Notice: Undefined variable: form_data_type in /opt/lampp/htdocs/Login/001.php on line 19

Warning: mysqli_query() expects at least 2 parameters, 1 given in /opt/lampp/htdocs/Login/001.php on line 19

Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in /opt/lampp/htdocs/Login/001.php on line 20

File ID:

Notice: Undefined variable: form_data_name in /opt/lampp/htdocs/Login/001.php on line 22

File Name:

Notice: Undefined variable: form_data_size in /opt/lampp/htdocs/Login/001.php on line 23

File Size:

Notice: Undefined variable: form_data_type in /opt/lampp/htdocs/Login/001.php on line 24

File Type:


Fatal error: Uncaught Error: Call to undefined function MYSQLi_RESULT() in /opt/lampp/htdocs/Login/001.php:29 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/Login/001.php on line 29
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme