|
[ Labyrinthman @ 13.07.2014. 18:21 ] @
| Moram odmah da kazem da sam pogledao sva uputstva oko uploada slike, da sam procitao uputstvo u Najcesce postavljenim pitanjima na ovom delu foruma, da sam gledao razlicite tutorijale i da i dalje ne uspevam da resim problem oko uploada.
Evo ga code pa se nadam da ce mi neko pomoci. :)
Code: <form method='POST' action='profil.php' enctype='multipart/form-data'>
Ime slike
<input type="text" name="imeslike"><br>
<input type="file" name="image"/><br /><br />
<input type="submit" value="Potvrdi" name="submit">
</form>
Code: if (isset($_POST['submit'])) {
require_once '../includes/Korisnik.php';
$imeslike = $_POST["imeslike"];
$slika = $_FILES['image']['name'];
$slika_temp = $_FILES['image']['tmp_name'];
if (empty($slika) && empty($imeslike)) {
echo $errors[] = 'you should fill the area.';
}
if (empty($errors) === true) {
$object=new Korisnik();
$object->uploadslike($imeslike, $slika, $slika_temp);
}
}
Code:
public function uploadslike($imeslike, $slika, $slika_temp) {
move_uploaded_file(isset($slika_temp), "slike/".$slika);
$id = $this->connection->lastInsertId();
$sql="INSERT INTO slike VALUES (:id,:imeslike,:idkorisnika,:slika)";
$stmt= $this->connection->prepare($sql);
$stmt->bindParam(":id",$id, PDO::PARAM_INT);
$stmt->bindParam(":imeslike",$imeslike, PDO::PARAM_STR);
$stmt->bindParam(":idkorisnika",$_SESSION["id"], PDO::PARAM_INT);
$stmt->bindParam(":slika",$slika, PDO::PARAM_STR);
$stmt->execute();}
[Ovu poruku je menjao Labyrinthman dana 13.07.2014. u 19:49 GMT+1]
[Ovu poruku je menjao Labyrinthman dana 13.07.2014. u 19:53 GMT+1] |
[ Mystery @ 14.07.2014. 00:29 ] @
Kazi ti nama sta te muci? Sta se desava, a sta se ne desava? Da li pokazuje nekakvu gresku?
[ Labyrinthman @ 14.07.2014. 16:46 ] @
Problem je bio u sledecem:
Radi unos u bazu ali ne radi upload u direktorijum, znaci u bazi je sve onakko kako zelim da bude, unesen je id, imeslike, id korisnika, naziv unesene slike ali nema uploadovane slike u direktorijumu "slike".
Iz tog razloga sam sinoc stavio absolutnu putanju i sad radi ali ti mi je skroz bezveze, zelim da imam relativnu putanju i da mi upload radi.
Znaci najveci problem je u funkciji move_uploaded_file($slika_temp, "slike/".$slika);
[ plus_minus @ 14.07.2014. 17:03 ] @
Code (php):
$_SERVER['DOCUMENT_ROOT']
# ili
__DIR__
# ili
dirname(__FILE__)
Bilo koja od te tri može da te reši muka za nadalje. Uvek formiraj apsolutnu putanju do slike, onda kada vršiš upload. Uopšte, uvek formiraj apsolutne putanje (into $variable or CONSTANT) za sve što ti treba/smatraš da treba, pre nego što kreneš da manipulišeš samim putanjama, menjaš im nazive, vršiš upload, brišeš fajlove.. foldere, kreiraš nove, itd.
[ Labyrinthman @ 14.07.2014. 17:23 ] @
@plus_minus
Hvala na savetu, pokusacu da uradim preko jedne od navedenih funkcija.
[ plus_minus @ 14.07.2014. 17:44 ] @
$_SERVER['DOCUMENT_ROOT'] ti je najpouzdanija, uvek vraća apsolutnu root putanju, polaznu tačku i za sve dalje/dublje od toga moraš dopisati .. za svaki nivo.
__DIR__ (magic constant) je malo drugačije. To će ti vratiti ne ROOT putanju, već apsolutnu putanju do direktorijuma, to jest fajla, odakle je pozvana sama __DIR__ m. konstanta..
dirname(__FILE__) je isto što i __DIR__ .. ukoliko se ne varam. __DIR__ m. konstanta je novijeg datuma i matorije verzije php-a nemaju pojma šta je to (mislim da više ni jedan setup i ne koristi te matorije verzije) ..
var_dump(), var_export(), print_r() - tvoji "drugari" na koje se vrlo često treba oslanjati. Smaranje jeste, ali nije za džabe.
[ Mystery @ 17.07.2014. 00:10 ] @
Ako i dalje neće probaj da staviš CHMOD 777 na folder "slike" ili nam daj error_report() šta kaže.
[ Labyrinthman @ 17.07.2014. 14:54 ] @
Hoce sad, uradio sam onako kako je plus_minus savetovao, stavio sam putanju sa $_SERVER['DOCUMENT_ROOT'] i sad lepo radi.
:)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|