ska försöka förklara mitt problem på ett enkelt sätt.
Jag vill ladda upp en bild i mysql (Binary) tabell raden ser ut så här.
bild mediumblob BINARY
och för att visa bilderna har jag denna kod
<?php
$id = $_GET['prodID'];
//Kontakta databasen med anv.namn o lösenord
$dbh = mysql_connect("localhost", "", "");
mysql_select_db("");
//Hämta upp bilden och bildtypen från databasen
$result = mysql_query("SELECT bild, bildtyp FROM produkter WHERE prodID='$id'");
$data = mysql_result($result,0,"bild");
$type = mysql_result($result,0,"bildtyp");
header("Content-type: $type");
echo $data;
?>
går jag in i phpMyAdmin och laddar upp manuellt så visas bilden, men gör jag det ifrån mitt formulär så laddas allt upp förutom själva bilen,alltså bildtyp,id,mm men inte bilden, här är koden för att lägga till i db
<?php function NyProdukt() {
global $dbh;
// Är personen inloggad?
if ($_SESSION['inloggad']!='1') {
// Nej, så vi skickar tillbaka till startsidan
header("Location: admin.php");
}
$kategoriID = $_POST['kategoriID'];
$prodID = $_POST['prodID'];
$spara = $_POST['spara'];
// Ska vi lista upp kategorierna?
if (empty($spara)) {
// Ja, visa alla kategorier
echo "<center>\n";
echo "<h3>Administrationsmeny - Ny produkt</h3>\n";
echo "<form action=\"admin.php\" method=\"post\" enctype=\"multipart/form-data\">\n";
echo "<input type=\"hidden\" name=\"op\" value=\"prod_ny\">\n";
echo "<table border=\"1\">\n";
echo "<tr>\n";
echo "<td colspan=\"2\">Beskrivning:</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=\"2\"><textarea name=\"beskrivning\" cols=\"40\" rows=\"5\"></textarea></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Pris:</td><td><input type=\"text\" name=\"pris\"></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Bild:</td><td><input type=\"file\" name=\"bild\"></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Kategori:</td>\n";
echo "<td><select name=\"kategoriID\">\n";
// Hämta alla kategorier och visa dem i en listruta
$result = mysql_query("SELECT * FROM kategorier", $dbh);
while($rad = mysql_fetch_array($result)) {
echo "<option value=\"".$rad['kategoriID']."\">".$rad['kategori']."</option>\n";
}
echo "</select></td>\n";
echo "</tr>\n";
echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"spara\" value=\"Spara\"></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>\n";
echo "</center>\n";
} elseif ($spara=="Spara") {
// Vi ska spara den nya produkten
// Vi börjar med att hantera den uppladdade bilden
if (is_uploaded_file($_FILES['bild']['tmp_name'])) {
// Okey, bilden laddades upp
// sätt den maximala bredden
$allowedWidth = 150;
//lägg filen i en variabel
$tempname = $_FILES['bild']['tmp_name'];
$filnamn = $_FILES['bild']['name'];
$filtyp = $_FILES['bild']['type'];
$filstorlek = $_FILES['bild']['size'];
// Beräkna bildens förminskning
//hämtar stl på bilden, först bredd, sen höjd
$image = getimagesize($tempname);
$bredd = $image[0];
$hojd = $image[1];
$fakt = ($image[0]/$allowedWidth);
$nybredd=$allowedWidth;
$nyhojd=(int)($hojd/$fakt);
if($filtyp == "image/pjpeg") {
$originalbild = imagecreatefromjpeg($tempname);
} elseif ($filtyp == "image/gif") {
$originalbild = imagecreatefromgif($tempname);
}elseif ($filtyp == "image/x-png") {
$originalbild = imagecreatefrompng($tempname);
}
//skapa miniatyrbildens mått
$miniatyrbild = imagecreate($nybredd, $nyhojd);
imagecopyresized($miniatyrbild, $originalbild, 0, 0, 0, 0, $nybredd, $nyhojd, $bredd, $hojd);
//om det är en jpg-fil ... eller gif-fil ... eller png-fil
if($filtyp == "image/pjpeg") {
imagejpeg($miniatyrbild,$tempname.".img",100);
} elseif ($filtyp == "image/gif") {
imagegif($miniatyrbild,$tempname.".img");
} elseif ($filtyp == "image/x-png") {
imagepng($miniatyrbild,$tempname.".img");
}
imagedestroy($originalbild);
imagedestroy($miniatyrbild);
$bild_data = addslashes(fread(fopen($tempname, "rb"), filesize($tempname)));
$miniatyr_data = addslashes(fread(fopen($tempname.".img", "rb"), filesize($tempname.".img")));
unlink($tempname.".img");
}
$beskrivning = $_POST['beskrivning'];
$pris = $_POST['pris'];
mysql_query("INSERT INTO produkter(beskrivning, bild, bildtyp, pris, kategoriID) VALUES('$beskrivning','$miniatyr_data','$filtyp','$pris','$kategoriID')", $dbh);
header("Location: admin.php");
}
}?>
lägger jag
<?PHP
error_reporting(E_ALL);
?>
får jag dessa felmeddelande, vad betyder det?
Warning: imagegif() [function.imagegif]: SAFE MODE Restriction in effect. The script whose uid is 88000 is not allowed to access /tmp owned by uid 0 in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 240
Warning: imagegif() [function.imagegif]: Invalid filename in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 240
Warning: fopen() [function.fopen]: Unable to access /tmp/phpkEcb7d.img in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 247
Warning: fopen(/tmp/phpkEcb7d.img) [function.fopen]: failed to open stream: No such file or directory in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 247
Warning: filesize() [function.filesize]: SAFE MODE Restriction in effect. The script whose uid is 88000 is not allowed to access /tmp owned by uid 0 in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 247
Warning: filesize() [function.filesize]: stat failed for /tmp/phpkEcb7d.img in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 247
Warning: fread(): supplied argument is not a valid stream resource in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 247
Warning: unlink() [function.unlink]: SAFE MODE Restriction in effect. The script whose uid is 88000 is not allowed to access /tmp owned by uid 0 in /customers/freddeholm.com/freddeholm.com/httpd.www/webbshop/admin.php on line 248