[ ctpaba @ 12.12.2005. 16:42 ] @
kako da uploadujem sliku uz pomoc html forma u mysql bazu?


form mi izgleda ovako :

Code:

<form method="post" action="insert.php" enctype="multipart/form-data">
Autor :<input type="text" name="author"><br>
Ime Fajla :<input type="file" name="image"><br>
Naslov :<input type="text" name="title"><br>
Tekst :<textarea name="text" rows="5" cols="35"></textarea><br>
<input type="submit" name="ok">
</form>


insert.php izgleda obvako :
Citat:

$author = $_POST["author"];
$image = $_FILES["image"];
$title = $_POST["title"];
$text = $_POST["text"];

$image = addslashes(fread(fopen($image, "r")));
mysql_query("INSERT INTO news VALUES (NULL,'$author','$image','$title','$text')");


baza mi izgleda ovako :

Citat:

`id` int(10) NOT NULL auto_increment,
`auth` varchar(20) NOT NULL default '',
`photo` longblob NOT NULL,
`title` varchar(30) NOT NULL default '',
`txt` text NOT NULL,


po svemu sto sam procitao terbalo bi da radi ali nece :( gde gresim ?
[ SmilieBG @ 12.12.2005. 17:50 ] @
A koju gresku dobijas?! :)

Poz,
Sale
[ ctpaba @ 12.12.2005. 18:04 ] @
pa ne dobijam gresku jednostavno fajla nema u bazi

Code:
[BLOB - 0 Bytes]
[ SmilieBG @ 12.12.2005. 18:35 ] @
probaj onda prvo:

Citat:

$author = $_POST["author"];
$image = $_FILES["image"];
$title = $_POST["title"];
$text = $_POST["text"];

echo $author."<br>";
echo $title."<br>";
echo $text."<br>";
echo $image."<br>";


pa vidi stizu li informacije o slici uopste do baze...

takodje, jesu li ispunjeni ostali podaci u bazi ili nije nista zapisano?

Poz,
Sale
[ stefaneg @ 12.12.2005. 22:53 ] @
ispravite me ako gresim ali zar:

$image ne treba da bude = $_FILES['image']['tmp_name']
i $image ne treba da bude = addslashes(fread(fopen($image, "r"),filesize($image)))

za ovo drugo nisam siguran, posto ja obicno navodim i velicinu slike koju citam, a ti nisi naveo

[Ovu poruku je menjao stefaneg dana 12.12.2005. u 23:55 GMT+1]
[ ctpaba @ 13.12.2005. 07:02 ] @
ovako :
sve ostale promenjive ulaze bez problema u bazu isim image.
gledao sam neke primere(koji usput meni ne rade) i izgleda da je obavezno ime fajla i velicina.
na jednom fr sajtu su rekli da treba izgleda prvo privremeno uploadovati fajl na server pa sa servera u bazu i tek onda ga obrisati sa servera ?
[ bojan_bozovic @ 13.12.2005. 07:16 ] @
Citat:

$image ne treba da bude = $_FILES['image']['tmp_name']


Da treba, pluse treba da uradis $data=addslashes(base64_encode($_FILES['image']['tmp_name'])); bar tako ja mislim :) Give it a try. I BTW zasto ne uploadujes u direktorijum na serveru a samo drzis ime fajla u bazi? Moras da uradis base64_encode fajla da bi ga upisao u bazu, sto ti povecava 33% velicinu??? Dalje, tako nepotrebno komplikujes backend, i povecavas opterecenje baze.
[ dragancesu @ 13.12.2005. 07:22 ] @
Iskreno receno nikad ovo nisam pokusavao, po misljenju mnogih je bolje resenje da stavis polje PHOTO CHAR(30) ili duze, vec po potrebi gde ces smestiti ime slike. Razlozi su prakticne prirode, ovako je brze. A slike svakako moras da dignes na server.

Necu reci da ovako ne moze ali iskustva drugih je da to opterecuje bazu, pitanje je samo koliko. Neki su pokusavali to sa ACCESS bazom pa su videli da mnogo vise povecava nego sto je slika velika, slika od 100k, a baza se poveca vise od toga.