PDA

Pogčedajte punu verziju : php mysql i slike


markopanic
12. 07. 2006., 22:57
Pomoc, ljudi!
Evo o cemu se radi.
Problem prvi:Imam 4 slike u direktorijumu "slike" na serveru, koje treba da se promene po zelji. Pretpostavljamo da se vodi racuna o velicini novih slika i to. E sad ja smislih da se lepo izabere nova slika i uploaduje pod istim imenom u dir slike, pa da je stranica procita i prikaze umesto stare. Ali ****, nece da je prikaze uopste! Prikazuje samo prazan prostor na kome slika treba da stoji... Sto me zbunjuje sasvim, kada kliknem na properties na to prazno polje, prikazuje mi se putanja do slike koja stoji na serveru! Kada prevucem to prazno polje na praznu stranicu, prikazer mi se ta slika1 Pa sam poceo da se pitam: jel to mene ovde neko z...... Slika se poziva iz obicnog html fajla.
Problem drugi: ja bih da napravim u php-u da moze da se izabere slika sa kompa, da se zapamti ime te slike u mysql bazi, pa da iz novog php-a procita to ime iz baze (a slika procita iz dir-a) i konacno prikaze na stanici! :) Voleo bih da se to uradi na taj nacin, da bih mogao lakse da brisem slike (brisanjem imena iz baze, a i njih i dir-a...) Medjutim, kad izaberem fajl sa harda sa


Code:


<form ENCTYPE="multipart/form-data" ACTION="ubaci.php" METHOD="POST">

Slika: <input name="imefajla" type="file">

<input type="submit" name="Submit" value="postavi">
<input type="reset" name="" value="obrisi">
</form>




"imefajla" je u stvari ime temporary fajla koji on napravi pre nego sto uradi nesto sa njim...
Tako da je moje pitanje: kako da ja izvucem pravo ime faila, a bih ga ubacio u bazu, i kasnije iskoristio na odgovarajuci nacin, i da li ce da mi se ponovo javi vec opisani problem gore? Mislio sam da bi to trebalo da radi fino... Nista prostije: citaj nekifajl.jpg iz direktorijuma slike, ja uploadujem neku drugu sliku pod istim imenom i druga slika se prikaze. Ali nema. Zasto?

Puno vam hvala

Ilija Studen
12. 07. 2006., 23:28
1. Ček, ček. Imaš jednu sliku koju zameniš novom. Kada odeš na tu adresu ti vidiš novu ili staru sliku (na stranici ne vidiš ništa)?
2. Pogledaj 'name' polje. Sve je lepo objašnjeno ovde (http://www.php.net/manual/en/features.file-upload.php).

ivanhoe
13. 07. 2006., 03:25
ako na stranici ne vidis nista, a kad direktno gadjas vidis sliku, onda ti HTML nije dobar. Proveri kako ti izgleda <img> tag, mozda nisu navodnici dobro zatvoreni ili ima extra space u imenu ili tako nesto..

takodje proveri velika i mala slova, jer pera.gif i Pera.gif na linux masinama nisu isti fajl...

markopanic
16. 07. 2006., 16:12
Nasao sam problem... Naime server jeste pod linuxom i prava na citanje uploadovane slike se ne postavljaju za "sve"... Jel mogu to da postavim u upload skripti, prava pristupa? Kao u linuxu? U njemu sam radio pre vise godina, ali mi se cini da je tamo "chmod a+r" ili bese nesto slicno... Uglavnom, jel moze to da se naglasi u skripti? U FTP manageru mogu da postavim prava kako hocu, i tad nema problema sa ucitavanjem slike, ali ovo bi trebalo da se automatski postavlja...

Hvala vam na odgovorima :)

markopanic
16. 07. 2006., 16:25
:)
Nasao sam i resenje :)

http://www.php.net/manual/en/function.chmod.php

...dakle - chmod("/somedir/somefile", <oktalna vrednost prava pristupa>);
Izvinte na dosadjivanju, i hvala na odgovorima!
Pozdrav!

markopanic
16. 07. 2006., 17:22
Novi problemi... :(
Naime fajl mi se ne uploaduje u celosti....
Evo koda koji koristim:

<?php

if ($_FILES['userfile']['error'] > 0)
{
echo 'Problem: ';
switch ($_FILES['userfile']['error'])
{
case 1: echo 'File exceeded upload_max_filesize'; break;
case 2: echo 'File exceeded max_file_size'; break;
case 3: echo 'File only partially uploaded'; break;
case 4: echo 'No file uploaded'; break;
}
exit;
}

/*// Does the file have the right MIME type?
if ($_FILES['userfile']['type'] != 'image/pjpg')
{
echo 'Problem: file is not plain text';
exit;
}

// put the file where we'd like it
*/

$upfile = 'slike/sponzor1.jpg';

if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile))
{
echo 'Problem: Could not move file to destination directory';
exit;
}
}
else
{
echo 'Problem: Possible file upload attack. Filename: ';
echo $_FILES['userfile']['name'];
exit;
}


echo 'File uploaded successfully<br><br>';

// reformat the file contents
$fp = fopen($upfile, 'r');
$contents = fread ($fp, filesize ($upfile));
fclose ($fp);

$contents = strip_tags($contents);
$fp = fopen($upfile, 'w');
fwrite($fp, $contents);
fclose($fp);

// show what was uploaded
echo 'Preview of uploaded file contents:<br><hr>';
echo $contents;
echo '<br><hr>';

chmod("slike/sponzor1.jpg", 0666); //podesavam prava pristupa kako mi ogovara :)

?>

...i ovo uploaduje sliku, ali samo njen deo! :(
U cemu je problem?