marw_the_big_headed_rhino Skrevet 3. februar 2005 Del Skrevet 3. februar 2005 Har denne koden i index.php, og skal bruke den til å laste opp bilder, og inn i databasen: index.php: <?php $conn = mysql_connect("localhost", "dufus", "dufus") OR DIE (mysql_error()); @mysql_select_db ("dufusdb", $conn) OR DIE (mysql_error()); // Do this process if user has browse the file and click the submit button if ($_FILES) { $image_types = Array ("image/bmp", "image/jpeg", "image/pjpeg", "image/gif", "image/x-png"); $userfile = addslashes (fread (fopen ($_FILES["userfile"]["tmp_name"], "r"), filesize ($_FILES["userfile"]["tmp_name"]))); $file_name = $_FILES["userfile"]["name"]; $file_size = $_FILES["userfile"]["size"]; $file_type = $_FILES["userfile"]["type"]; if (in_array (strtolower ($file_type), $image_types)) { $sql = "INSERT INTO image (image_type, image, image_size, image_name, image_date) "; $sql.= "VALUES ("; $sql.= "'{$file_type}', '{$userfile}', '{$file_size}', '{$file_name}', NOW())"; @mysql_query ($sql, $conn); Header("Location:".$_SERVER["PHP_SELF"]); exit(); } } // Do this process of user has click a file name to view or remove if ($_GET) { $iid = $_GET["iid"]; $act = $_GET["act"]; switch ($act) { case rem: $sql = "DELETE FROM image WHERE image_id=$iid"; @mysql_query ($sql, $conn); Header("Location:./index.php"); exit(); break; default: print "<img src=\"image.php?iid=$iid\">"; break; } } ?> <html> <head> <title>Storing Images in DB</title> </head> <body> <form method="post" enctype="multipart/form-data"> Select Image File: <input type="file" name="userfile" size="40"><input type="submit" value="submit"> </form> <?php $sql = "SELECT * FROM image ORDER BY image_date DESC"; $result = mysql_query ($sql, $conn); if (mysql_num_rows($result)>0) { while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $i++; $str .= $i.". "; $str .= "<a href=\"index.php?iid=".$row["image_id"]."\">".$row["image_name"]."</a> "; $str .= "[".$row["image_date"]."] "; $str .= "[".$row["image_size"]."] "; $str .= "[<a href=\"index.php?act=rem&iid=.$row["image_id]."\">Remove</a>]<br>"; } print $str; } ?> </body> </html> I tillegg har jeg en fil som heter image.php som går så her: <?php // database connection $conn = mysql_connect("localhost", "dufus", "dufus") OR DIE (mysql_error()); @mysql_select_db ("dufusdb", $conn) OR DIE (mysql_error()); $sql = "SELECT * FROM image WHERE image_id=".$_GET["iid"]; $result = mysql_query ($sql, $conn); if (mysql_num_rows ($result)>0) { $row = @mysql_fetch_array ($result); $image_type = $row["image_type"]; $image = $row["image"]; Header ("Content-type: $image_type"); print $image; } ?> Problemet er at jeg ikke får kjørt alle bildene inn i databasen. Hvis jeg tar bilder med liten filstørrelse går det greit. Hvis jeg tar bilder som kanskje er 1700X1200 eller noe, går det ikke greit. Får ingen feilmelding, men det blir ikke lagret i databasen. Feilmeldingen jeg får fra img.php er følgende: arning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in P:\webserver\im2db\image.php on line 11 Noen som kan ta et kjapt blikk og fortelle meg noe? For jeg schønner det ikke. Lenke til kommentar
stiber Skrevet 3. februar 2005 Del Skrevet 3. februar 2005 Grunnen til at du ikke får lagret store bilder, kan være at du har feil "column type" på image feltet. I vanlig Blob kan du bare lagre 64Kb. Bruk Mediumblob. Den svelger 16Mb. Hvis ikke det er problemet, så må du sjekke upload limits i konfigurasjon. Problem 2: Prøv å sett inn print mysql_error(); i linja under mysql_query(), og sett // foran header(). Fortell oss så hva som skjer. Lenke til kommentar
marw_the_big_headed_rhino Skrevet 3. februar 2005 Forfatter Del Skrevet 3. februar 2005 Grunnen til at du ikke får lagret store bilder, kan være at du har feil "column type" på image feltet. I vanlig Blob kan du bare lagre 64Kb. Bruk Mediumblob. Den svelger 16Mb. Hvis ikke det er problemet, så må du sjekke upload limits i konfigurasjon. Problem 2: Prøv å sett inn print mysql_error(); i linja under mysql_query(), og sett // foran header(). Fortell oss så hva som skjer. Meldingen som kommer er: MySQL server has gone away I SQL filen har jeg følgende kode for image: CREATE TABLE image ( image_id int(10) unsigned NOT NULL auto_increment, image_type varchar(50) NOT NULL default '', image longblob NOT NULL, image_size bigint(8) NOT NULL default '0', image_name varchar(255) NOT NULL default '', image_date datetime NOT NULL default '0000-00-00 00:00:00', UNIQUE KEY image_id (image_id) ); if (in_array (strtolower ($file_type), $image_types)) { $sql = "INSERT INTO image (image_type, image, image_size, image_name, image_date) "; $sql.= "VALUES ("; $sql.= "'{$file_type}', '{$userfile}', '{$file_size}', '{$file_name}', NOW())"; @mysql_query ($sql, $conn); print mysql_error(); //Header("Location:".$_SERVER["PHP_SELF"]); exit(); } Sånn ser koden min ut nå etter at jeg kommenterte ut header, og brukte mysql_error(); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå