02. maj 2010 - 17:35Der er
24 kommentarer og 1 løsning
Uploader ikke billede? Ny inden for PHP/MySQL
Halløj.
Jeg er helt ny inden for PHP/Mysql, og er også helt ny bruger på Eksperten.dk, så i må lige bære over med mig.
Jeg prøver at få uploadet billede samt billede beskrivelse til min database, og den udskriver "Billedet er blevet uploadet", men det er kun beskrivelsen der kommer ind i databasen. Feltet til billeder forbliver tom? Mine filer:
Jeg har faktisk taget fejl, men kan godt ligge billederne ind i databasen, i stedet for at uploade dem som jeg foreslog. Det andet ved jeg dog ikke hvordan man gør :)
Synes godt om
Slettet bruger
02. maj 2010 - 19:06#9
Edit: Nu ser min load.php sådan ud: [code] <?php
include ('connect.php');
$BilledeNavn = $_FILES['billede']['name'];
$beskrivelse = $_POST[beskrivelse];
$BilledeTmp = $_FILES['billede']['tmp_name'];
$Destination = "/billeder/".$BilledeNavn; // Så ender billedet i en mappe der hedder billeder.
move_uploaded_file($BilledeTmp, $Destination);
mysql_query("INSERT INTO billeder (billede,beskrivelse)VALUES('$BilledeNavn','$beskrivelse')");
echo "Billedet er blevet uploadet";
?> [/code] Og jeg har ændret feltet 'billede' til TEXT istedet for BLOB. Men billedenavnet bliver ikke sat ind i feltet?
Synes godt om
Slettet bruger
02. maj 2010 - 19:07#10
Ja okay, der gik det lidt galt. Prøver igen: ---------- <?php
include ('connect.php');
$BilledeNavn = $_FILES['billede']['name'];
$beskrivelse = $_POST[beskrivelse];
$BilledeTmp = $_FILES['billede']['tmp_name'];
$Destination = "/billeder/".$BilledeNavn; // Så ender billedet i en mappe der hedder billeder.
move_uploaded_file($BilledeTmp, $Destination);
mysql_query("INSERT INTO billeder (billede,beskrivelse)VALUES('$BilledeNavn','$beskrivelse')");
Nej, det virker ikke. Jeg har ændret feltet 'billede' til TEXT istedet for BLOB, men der bliver ikke indsat noget billednavn
Synes godt om
Slettet bruger
02. maj 2010 - 20:20#13
Hvis du vil gemme billedet direkte i databasen, så skal du gemme følgende data: - Navn på billede (gemmes som varchar med passende størrelse) - Selve billedets data (gemmes som blob) For at få "billedets data" skal du læse indholdet af det uploadede billede. Dette kan f.eks. gøres med fread() eller file_get_contents()
Håber det kan hjælpe dig lidt på vej :-)
Synes godt om
Slettet bruger
03. maj 2010 - 12:32#14
Jeg har kigget lidt på det med at gemme det i databasen, og jeg synes det ser lidt for kompliceret ud :-) Men problemet med min nuværende fil er at den ikke lægger billederne ind i mappen 'billeder', og navnet på billederne bliver heller ikke lagt ind i databasen. Det eneste jeg får ind, er beskrivelsen? load.php ---------- <?php
include ('connect.php');
$BilledeNavn = $_FILES['billede']['name'];
$beskrivelse = $_POST[beskrivelse];
$BilledeTmp = $_FILES['billede']['tmp_name'];
$Destination = "/billeder/".$BilledeNavn; // Så ender billedet i en mappe der hedder billeder.
move_uploaded_file($BilledeTmp, $Destination);
mysql_query("INSERT INTO billeder (billede,beskrivelse)VALUES('$BilledeNavn','$beskrivelse')");
$Destination = "/billeder/".$BilledeNavn; // Så ender billedet i en mappe der hedder billeder.
move_uploaded_file($BilledeTmp, $Destination);
mysql_query("INSERT INTO billeder (billede,beskrivelse)VALUES('$BilledeNavn','$beskrivelse')");
echo "Billedet er blevet uploadet";
?>
Prøv dette i stedet for :)
Synes godt om
Slettet bruger
03. maj 2010 - 18:02#16
Nu begynder det at ligne noget :-) Nu får jeg billednavn og beskrivelse ind i databasen - nu mangler jeg blot at få billedet ind på FTP'en :-) Kan ikke rigtig se hvor fejlen ligger, men jeg har jo selvfølgelig heller ikke forstand på det :-D
Synes godt om
Slettet bruger
03. maj 2010 - 19:53#17
Prøv at kom med et eksempel på en fuld sti til et uploadet billede, så som http://ditdomain.dk/billeder/juleaften2009_1.jpg Det kunne jo være at du prøver og flytte det uploadede billede hen til et sted der ikke findes. Desuden kræver det at destinations-stedet har de rette rettigheder (chmod).
Synes godt om
Slettet bruger
03. maj 2010 - 20:59#18
http://kristoffer.km-media.dk/billeder/bg.jpg Denne sti burde fungere hvis scriptet gjorde, da jeg har oprettet mappen 'billeder' på samme destination som filerne. Mappen har CHMOD 777/0777 :-) Men billedet kommer alligevel ikke ind.
Synes godt om
Slettet bruger
03. maj 2010 - 21:41#19
Prøv at udskriv $_FILES['fil']['error'], evt. lav en fuld debug på hele $_FILES arrayet med print_r()-funktionen sådan her:
Hmm, kan ikke sådan lige umiddelbart se hvor fejlen skulle ligge henne..
<?php
include ('connect.php');
$BilledeNavn = $_FILES['fil']['name'];
$beskrivelse = $_POST[beskrivelse];
$BilledeTmp = $_FILES['fil']['tmp_name'];
$Destination = "billeder/".$BilledeNavn; // Så ender billedet i en mappe der hedder billeder.
move_uploaded_file($BilledeTmp, $Destination);
mysql_query("INSERT INTO billeder (billede,beskrivelse)VALUES('$BilledeNavn','$beskrivelse')");
echo "Billedet er blevet uploadet";
?>
Er ikke sikker på det vil virke, men det er forsøget værd :)
Synes godt om
Slettet bruger
03. maj 2010 - 22:09#21
Funktionen move_uploaded_file() giver kun en warning hvis der er angivet en valid "fra"-fil, som ikke kunne flyttes. Derfor kan det være at $_FILES-error kan fortælle os lidt mere om hvad der går galt.
Quote fra PHP.net:
Return Values
If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE.
If filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued.
Synes godt om
Slettet bruger
03. maj 2010 - 22:33#22
Jeg er ikke sikker på hvad du mener men: Array ( [fil] => Array ( [name] => banner.png [type] => image/png [tmp_name] => /tmp/phpNg7FXh [error] => 0 [size] => 50523 )
)
Ellers, kan du så ikke lige smide det ind i min fil som det skal være, for at jeg kan få udskrevet fejlen? :-)
Synes godt om
Slettet bruger
03. maj 2010 - 22:51#23
Quote fra PHP koden: [error] => 0
Quote fra PHP.net: Value: 0; There is no error, the file uploaded with success.
Ifølge PHP blev din fil uploadet med "success". Så alt jeg ved lige pt. er at selve filen bliver uploadet fint til dit temporary-directory, men den fejler når den skal flytte filen over til "billeder"-mappen, derfor vil mit bedste bud være at du ikke har de rette rettigheder for dit temporary-directory eller "billeder"-directoriet, selvom du allerede har sagt at "billeder" har alle rettigheder. Ellers er det eneste andet bud jeg kan komme med at prøve og sætte errors til og reporterer alt og se om det giver noget brugbart information. Kan gøres ved at indsætte følgende kode i toppen af dit script:
Jeg havde fuldstændig overset hvad du skrev agurk, men jeg kan se at du i det sidste stykke kode du sendte har fjernet / foran billeder/, og det prøvede jeg også - og så virkede det! :-) I skal have mange tak for hjælpen begge to!
Hehe, hader når det er ét enkelt tegn der er malplaceret, og så virker det hele bare ikke..
Men skulle det være en anden gang ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.