31. august 2006 - 21:16Der er
18 kommentarer og 1 løsning
Upload af billeder med form/gd/php/mysql!
Hej alle,
Jeg er i gang med at lege med billede uploads via php/mysql, men billedet, som jeg opretter i databasen bliver vist med en firkant med et rød kryds. Er der en, som kan give mig et hint?
<html> <head> <title>Upload your pic to our site!</title> </head> <body>
//upload image and check for image type //make sure to change your path to match your images directory $ImageDir ="/var/www/html/phptest/images/"; $ImageName = $ImageDir . $image_tempname;
if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $ImageName)) {
//get info about the image being uploaded list($width, $height, $type, $attr) = getimagesize($ImageName);
switch ($type) { case 1: $ext = ".gif"; break; case 2: $ext = ".jpg"; break; case 3: $ext = ".png"; break; default: echo "Sorry, but the file you uploaded was not a GIF, JPG, or " . "PNG file.<br>"; echo "Please hit your browser's 'back' button and try again."; }
//insert info into image table
$insert = "INSERT INTO images (image_caption, image_username, image_date) VALUES ('$image_caption', '$image_username', '$today')"; $insertresults = mysql_query($insert) or die(mysql_error());
$lastpicid = mysql_insert_id();
$newfilename = $ImageDir . $lastpicid . $ext;
rename($ImageName, $newfilename);
}
?>
<html> <head> <title>Here is your pic!</title> </head> <body> <h1>So how does it feel to be famous?</h1><br><br> <p>Here is the picture you just uploaded to our servers:</p> <img src="/images/<?php echo $lastpicid . $ext; ?>" align="left"> <strong><?php echo $image_name; ?></strong><br> This image is a <?php echo $ext; ?> image.<br> It is <?php echo $width; ?> pixels wide and <?php echo $height; ?> pixels high.<br> It was uploaded on <?php echo $today; ?>. </body> </html>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hej. I den nederste del i <img src... Har du et " tegn som er unødvendigt. Og jeg tvivler på at du skal have punktum med i din switch sætning. f. eks. $ext = "gif"; og husk at billede typen også kan stå med storebogstaver. :-)
Hej. I den nederste del i <img src... Har du et / tegn som er unødvendigt og bør fjernes. Og jeg tvivler på at du skal have punktum med i din switch sætning. f. eks. $ext = "gif"; og husk at billede typen også kan stå med storebogstaver. :-)
så lige nu ser det ud til du skal ændre. <img src="/images/<?php echo $lastpicid . $ext; ?>" align="left"> til <img src="../images/<?php echo $lastpicid . $ext; ?>" align="left">
Jeg har rettet efter din vejledning, men det virker stadig ikke. Billede-informationerne bliver oprettet og filerne oploades i den rigtig mappe. Men billedet bliver ikke vist i browseren. Mystisk, hvad kan det mon skyldes?
Hvordan kører man en chmod automatisk? Hvordan finder man ud, hvilket tal man skal bruge?
<?php chmod("/sti/til/fil", 755); // decimal; sikkert forkert chmod("/sti/til/fil", "u+rwx,go+rx"); // string; forkert chmod("/sti/til/fil", 0755); // octal; den korrekte værdi ?> ---- <?php // Gør en fil skrivbar og læsbar for ejeren, ingen andre kan intet gøre chmod("/sti/til/fil", 0600);
// Læs og skriveadgang for ejeren, alle andre kan læse chmod("/sti/til/fil", 0644);
// Alle rettigheder til ejeren, andre kan eksekvere og læse chmod("/sti/til/fil", 0755);
// Alle rettigheder til ejeren, hans gruppe kan eksekvere og læse, resten kan intet chmod("/somedir/somefile", 0750); ?>
<?php //connect to the database $link = mysql_connect("xxxxx", "xxxxx", "xxxxx") or die("Could not connect: " . mysql_error()); mysql_select_db("xxxxx", $link) or die (mysql_error());
//upload image and check for image type //make sure to change your path to match your images directory $ImageDir ="/var/www/html/phptest/images/"; $ImageName = $ImageDir . $image_tempname;
if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $ImageName)) {
//get info about the image being uploaded list($width, $height, $type, $attr) = getimagesize($ImageName);
switch ($type) { case 1: $ext = ".gif"; break; case 2: $ext = ".jpg"; break; case 3: $ext = ".png"; break; default: echo "Sorry, but the file you uploaded was not a GIF, JPG, or " . "PNG file.<br>"; echo "Please hit your browser's 'back' button and try again."; }
//insert info into image table
$insert = "INSERT INTO images (image_caption, image_username, image_date) VALUES ('$image_caption', '$image_username', '$today')"; $insertresults = mysql_query($insert) or die(mysql_error());
$lastpicid = mysql_insert_id();
$newfilename = $ImageDir . $lastpicid . $ext;
rename($ImageName, $newfilename);
} chmod("/var/www/html/phptest/images/", 0755); ?> <html> <head> <title>Here is your pic!</title> </head> <body> <h1>So how does it feel to be famous?</h1><br><br> <p>Here is the picture you just uploaded to our servers:</p> <img src="/var/www/html/phptest/images/<?php echo $lastpicid . $ext; ?>" align="left"> <strong><?php echo $image_name; ?></strong><br> This image is a <?php echo $ext; ?> image.<br> It is <?php echo $width; ?> pixels wide and <?php echo $height; ?> pixels high.<br> It was uploaded on <?php echo $today; ?>. </body> </html>
Synes godt om
Slettet bruger
01. september 2006 - 20:38#16
Nej, for det du gør der er, at chmodde MAPPEN og ikke FILEN... Det er FILEN der ikke må læses. Gør sådan her: chmod($ImageName, 0755);
Tusind tak for hjælpen philip. Nu kan jeg komme videre med min php-læsning.
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.