Problemer med enctype="multipart/form-data" i en form
Hej med jer kloge hoveder :)Jeg har et meget meget sjovt problem synes jeg.
Jeg har lavet en lille billede upload form som et php script tager sig af. Php scriptet gør to ting kan man sige. 1. det tager billedet og skalere det om til en anden størrelse. 2. det smider billedet navn ind i en mysql db.
Her er koden:
<html>
<head>
<title>New document</title>
</head>
<body>
<form name="upform" id="upform" enctype="multipart/form-data" action="index2.php" method="post">
<br>
<?php $dir = "../uppic/media/profiles/"; ?>
<br />
Fil: <input type="file" name="fileup" id="fileup" size="20" /><br />
Dir:<input type="text" name="dir" id="dir" readonly="readonly" size="20" value="<?php print $dir; ?>" style="background:;" /><br />
<input type="submit" value="Submit" name="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$filepath = $_POST['fileup'];
echo $_FILES['fileup']['name'];
echo $_POST['fileup'];
}
$filename = $_FILES['fileup']['name'];
$dirpath = "../media/profiles/";
echo $filename;
$image = imagecreatefromjpeg($filepath);
$w = imagesx($image);
$h = imagesy($image);
$maxw = 150;
$maxh = 150;
$scalw = $w/$maxw;
$scalh = $h/$maxh;
if ($scalw>$scalh){
$neww = $w/$scalw;
$newh = $h/$scalw;
}
else {
$neww = $w/$scalh;
$newh = $h/$scalh;
}
$newimage = imagecreatetruecolor($neww,$newh);
imagecopyresized($newimage,$image,0,0,0,0,$neww,$newh,$w,$h);
$filnavn = pathinfo($filepath);
$filnavn = $filnavn['basename'];
imagejpeg($newimage,"../uppic/media/profiles/".$filnavn);
$kryb = md5($password);
$conn = mysql_connect("localhost", "root", "") or die("Kunne ikke forbinde");
mysql_select_db("test", $conn);
mysql_query("INSERT INTO bruger(picpath) VALUES ('".$dirpath.$filename."')") or die (mysql_error());
?>
</body>
</html>
Problemet ligger i enctype="multipart/form-data" (jeg sætter i min html form. Jeg har hørt at den er god at have med når man har med filer og gøre)Når jeg har den med så kan jeg kun få variablen mha.: $_FILES['fileup']['name']; og dvs. at filnavnet ikke bliver lagt i databasen men hvis jeg fjerner enctype="multipart/form-data" fra formen så virker Hej med jer kloge hoveder :)
Jeg har et meget meget sjovt problem synes jeg.
Jeg har lavet en lille billede upload form som et php script tager sig af. Php scriptet gør to ting kan man sige. 1. det tager billedet og skalere det om til en anden størrelse. 2. det smider billedet navn ind i en mysql db.
Her er koden:
<html>
<head>
<title>New document</title>
</head>
<body>
<form name="upform" id="upform" enctype="multipart/form-data" action="index2.php" method="post">
<br>
<?php $dir = "../uppic/media/profiles/"; ?>
<br />
Fil: <input type="file" name="fileup" id="fileup" size="20" /><br />
Dir:<input type="text" name="dir" id="dir" readonly="readonly" size="20" value="<?php print $dir; ?>" style="background:;" /><br />
<input type="submit" value="Submit" name="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$filepath = $_POST['fileup'];
echo $_FILES['fileup']['name'];
echo $_POST['fileup'];
}
$filename = $_FILES['fileup']['name'];
$dirpath = "../media/profiles/";
echo $filename;
$image = imagecreatefromjpeg($filepath);
$w = imagesx($image);
$h = imagesy($image);
$maxw = 150;
$maxh = 150;
$scalw = $w/$maxw;
$scalh = $h/$maxh;
if ($scalw>$scalh){
$neww = $w/$scalw;
$newh = $h/$scalw;
}
else {
$neww = $w/$scalh;
$newh = $h/$scalh;
}
$newimage = imagecreatetruecolor($neww,$newh);
imagecopyresized($newimage,$image,0,0,0,0,$neww,$newh,$w,$h);
$filnavn = pathinfo($filepath);
$filnavn = $filnavn['basename'];
imagejpeg($newimage,"../uppic/media/profiles/".$filnavn);
$kryb = md5($password);
$conn = mysql_connect("localhost", "root", "") or die("Kunne ikke forbinde");
mysql_select_db("test", $conn);
mysql_query("INSERT INTO bruger(picpath) VALUES ('".$dirpath.$filename."')") or die (mysql_error());
?>
</body>
</html>
Problemet ligger i enctype="multipart/form-data" (den sætter jeg i min html form. Jeg har hørt at den er god at have med når man har med filer og gøre) Når jeg har den med, så kan jeg kun få fat i variablen mha.: $_FILES['fileup']['name']; og dvs. at filnavnet bliver lagt i databasen men den scalere ikke billedet for $_POST['fileup']; virker ikke. Men hvis jeg fjerner enctype="multipart/form-data" fra formen, ja så virker
$_POST['fileup']; og den scalere billedet men $_FILES['fileup']['name']; virker ikke nu og så gemmer den ikke navnet i databasen.
Men altså der er kun en af dem der virker de virker ikke på samme tid og det skal de men så hvidt jeg kan se er det noget med enctype="multipart/form-data" at gøre :(
Jeg håber at der er en der kan hjælpe
Hilsen
Skirk