Avatar billede bertelsenbo Nybegynder
03. juni 2004 - 22:25 Der er 43 kommentarer og
2 løsninger

Upload billed fukntion fra bunden

Jeg har ikke så meget forstand på php (kun lidt, aner ikke hvilke funktioner jeg skal bruge) og jeg vil gerne have en upload funktion. Jeg gider ikke downloade et script for så har jeg ikke tjek på hvad der sker. Skal bruges til et billed-galleri hvor admin kan uploade billeder.

Specs:
- evt. max filstørrelse
- kun jpg og gif
- omdøbes (starter med 1.jpg, 2.jpg, 3.gif osv.)
- url tilføjes til mysql database (fx /billeder/1.jpg osv.) evt. med id.

Jeg starter med www.bo.bert.dk/album/upload.php med:

<form method="POST" enctype="multipart/form-data" action="?">
  <input type="file" name="file" size="20"></p>
  <p><input type="submit" value="Upload" name="upload"></p>
</form>

Så vil jeg bare gerne guides igennem, hvis nogle gider hjælpe mig.
Avatar billede swaxi Nybegynder
03. juni 2004 - 22:49 #1
Avatar billede bertelsenbo Nybegynder
03. juni 2004 - 22:54 #2
Jeg vil som sagt gerne guides igennem det. Jeg fatter hat er deres tuts.
Avatar billede saucer Nybegynder
04. juni 2004 - 10:29 #3
Hej :)

Prøv at se her : http://websteps.dk/vis_artikel.php?id=53

+
at du kan hente et script som jeg selv har lavet, så kan du se hvordan det kan bygges op. Og scriptet finder du på www.saucer.dk
Avatar billede sukos Juniormester
04. juni 2004 - 11:55 #4
Du kan også kikke her:
http://www.webcafe.dk/artikler/php/upload/


Og så kan du kikke lidt på det her, og spørge om det du ikke lige forstår:


<?php
session_start();

// ca. 100 Kb må billedet fylde
$kb = 100;

// Det dir som der skal uploades til, med skråstreger
// Og skal ligge inde for "webscope", altså f.eks. domain.dk/galleri/
$galleridir = "/galleri/";



if (isset($_FILES["upfile"])) {

$arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");

    if($_FILES["upfile"]["error"] > 0) {
    $_SESSION["besked"] = strtr($_FILES["upfile"]["error"], $arg);
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($_FILES["upfile"]["size"] > $maxsize) {
    $_SESSION["besked"] = "Filen er for stor til upload!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if(false == ($str = getimagesize($_FILES["upfile"]["tmp_name"]))) {
    $_SESSION["besked"] = "Valgte fil til upload er ikke en billedfil!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($str[2] > 2) {
    $_SESSION["besked"] = "Kun jpg og gif filer kan uploades!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    $newname = strtolower($_FILES["upfile"]["name"]);

    $bad = "\'*^´`+}{][£!§½%¤#=¨áàãââçéèêëìíîïñòóôõöùúûüýÿ?,\"/";
    for($i = 0; $i < strlen($bad); $i++) {
    $newname = str_replace($bad[$i], "", $newname);
    }

    $replace = array("æ" => "ae", "ø" => "oe", "å" => "aa", " " => "_");

    $newname = strtr($newname, $replace);

    $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir;

    $ext = pathinfo($newname);
    $filtype = $ext["extension"]; // FILTYPEN
    $main = basename($newname, ".". $filtype); // FILNAVNET UDEN FILTYPE
    $i = 0;
    while (is_file($moveto . $newname)) {
    $i++;
    $newname = $main ."_". sprintf("%03u", $i) .".". $filtype;
    }


    if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $newname)) {
    $_SESSION["besked"] = "Billedet er blevet uploadet!";
    }else{
    $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!";
    }

    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();

}
?>

<html><head><title>Filupload</title>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.upfile.value == "" || thisform.upfile.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.upfile.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>

</head>

<body>

<?php

if(!is_dir($_SERVER["DOCUMENT_ROOT"] . $galleridir)) {
echo"Dir som fil skal flyttes til eksisterer ikke!!!";
}else{
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" onsubmit="return checkForm(this);">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($kb*1024); ?>">
<input name="upfile" type="file" size="32"><br>
<input type="submit" value="Upload">
</form>

<?php
if(isset($_SESSION["besked"])) {
echo"<p><b>". $_SESSION["besked"] ."</b>";
unset($_SESSION["besked"]);
}

}
?>
</body></html>
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 14:39 #5
sukos - jeg fort
Avatar billede sukos Juniormester
04. juni 2004 - 14:40 #6
Af hva'?????????  :O)))))))
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 14:43 #7
sukos - jeg forstår ikke det HELE, lad os sige det på den måde. jeg ændrede galleridir til det rigtige "./pics/". Men det virker ikke, i første forsøg fik jeg en (CGI)timeout, og næste gang kunne "Siden kan ikke vises".

Nu viser det sig mit websted gik ned, min fejl? Vender lige tilbage når den er oppe og køre igen.
Avatar billede sukos Juniormester
04. juni 2004 - 14:48 #8
æhhh, du skal IKKE ha' et punktum i stien til dir'et.
Og b.t.w. skal der ligge 4.2.0+ PHP på serveren for at det virker!
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:11 #9
Hvis jeg ikke laver . kan den ikke finde dir´et, har brugt det i et andet upload-script før hvor det virkede.
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:14 #10
http://www.bo.bert.dk/album/ver.php
<?php
echo 'Current PHP version: ' . phpversion();
?>
Current PHP version: 4.2.0
Avatar billede sukos Juniormester
04. juni 2004 - 15:15 #11
jah, punktum bruges gerne til at "fortælle" det er de taktuelle dir man befunder sig i.
Men her angi's den fulde sti til dir, så jeg ville ikke bruge det! :O)
Avatar billede sukos Juniormester
04. juni 2004 - 15:15 #12
Prøv med en
<?php
phpinfo();
?>

Bare så'n lige............. :O)
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:18 #13
Nu prøvede jeg igen, og det fik mit websted til at crashe på ny. Det er et eller andet der ikke spiller som det skal.
Avatar billede sukos Juniormester
04. juni 2004 - 15:31 #14
Kan du vise hvordan filen ser ud, som du prøver med?
Og kan du ik' smide et link til en phpinfo() ?
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:33 #15
http://www.bo.bert.dk/album/ver.php <- phpinfo
http://www.bo.bert.dk/album/mam.php :
<?php
session_start();

// ca. 100 Kb må billedet fylde
$kb = 100;

// Det dir som der skal uploades til, med skråstreger
// Og skal ligge inde for "webscope", altså f.eks. domain.dk/galleri/
$galleridir = "./pics/";



if (isset($_FILES["upfile"])) {

$arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");

    if($_FILES["upfile"]["error"] > 0) {
    $_SESSION["besked"] = strtr($_FILES["upfile"]["error"], $arg);
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($_FILES["upfile"]["size"] > $maxsize) {
    $_SESSION["besked"] = "Filen er for stor til upload!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if(false == ($str = getimagesize($_FILES["upfile"]["tmp_name"]))) {
    $_SESSION["besked"] = "Valgte fil til upload er ikke en billedfil!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($str[2] > 2) {
    $_SESSION["besked"] = "Kun jpg og gif filer kan uploades!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    $newname = strtolower($_FILES["upfile"]["name"]);

    $bad = "\'*^´`+}{][£!§½%¤#=¨áàãââçéèêëìíîïñòóôõöùúûüýÿ?,\"/";
    for($i = 0; $i < strlen($bad); $i++) {
    $newname = str_replace($bad[$i], "", $newname);
    }

    $replace = array("æ" => "ae", "ø" => "oe", "å" => "aa", " " => "_");

    $newname = strtr($newname, $replace);

    $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir;

    $ext = pathinfo($newname);
    $filtype = $ext["extension"]; // FILTYPEN
    $main = basename($newname, ".". $filtype); // FILNAVNET UDEN FILTYPE
    $i = 0;
    while (is_file($moveto . $newname)) {
    $i++;
    $newname = $main ."_". sprintf("%03u", $i) .".". $filtype;
    }


    if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $newname)) {
    $_SESSION["besked"] = "Billedet er blevet uploadet!";
    }else{
    $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!";
    }

    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();

}
?>

<html><head><title>Filupload</title>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.upfile.value == "" || thisform.upfile.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.upfile.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>

</head>

<body>

<?php

if(!is_dir($_SERVER["DOCUMENT_ROOT"] . $galleridir)) {
echo"Dir som fil skal flyttes til eksisterer ikke!!!";
}else{
?>
<form action="mam.php" method="post" enctype="multipart/form-data" onsubmit="return checkForm(this);">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($kb*1024); ?>">
<input name="upfile" type="file" size="32"><br>
<input type="submit" value="Upload">
</form>

<?php
if(isset($_SESSION["besked"])) {
echo"<p><b>". $_SESSION["besked"] ."</b>";
unset($_SESSION["besked"]);
}

}
?>
</body></html>
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:41 #16
Jeg sletter filen så snart jeg kan for den bliver ved at med crashe.
Avatar billede sukos Juniormester
04. juni 2004 - 15:41 #17
hmmm, prøv lige en:
<?php
ini_set('error_reporting', "E_ALL");
session_start();
$kb = 100;

$galleridir = "/pics/";


og så resten af scriptet
Avatar billede sukos Juniormester
04. juni 2004 - 15:42 #18
Jahh, eller gi' den et nyt navn, så er der ikke link herfra! :O)
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:47 #19
"Dir som fil skal flyttes til eksisterer ikke!!!"

Virker kun med . foran /pics/
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 15:49 #20
Hvilket også resulterer i et crash.
Avatar billede sukos Juniormester
04. juni 2004 - 15:50 #21
Nåh, ville ligeprøve seæv også her!
OOGOGOGOOGOGOGO

if($_FILES["upfile"]["size"] > $maxsize) {

skal være

if($_FILES["upfile"]["size"] > ($kb*1024)) {


!!!!!!!!!!

Og fordi den ikke viser alle fejl, så går der ged i den!

Skal desværre gå nu
Avatar billede sukos Juniormester
04. juni 2004 - 15:50 #22
Men prøv også at kikke på de andre scripts!
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 16:00 #23
Det fik den til at crashe (halvt) men nu fik den uploadet filen! 27 gange temp_025.jpg osv. ligger nu pics mappen. heheh, der er et eller andet fuldkommen galt.
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 16:14 #24
Jeg er i færd med at lave min egen version fra bunden, og nu er det lykkes mig at uploade filer uden besvær, nu skal jeg bare have filtyper restriktion på og max størrelse.
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 17:18 #25
Ok, nu har jeg så selv stykket mit uploadscript sammen ud fra det jeg har fået herinde fra. Og noget fra en af mine gode venner. Det virker perfekt og ser sådan her ud:

<?php
$konfiguration["upload_bibliotek"] = "./pics/";
$kb = 50;

$fra = $_FILES["billede"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["billede"]["name"];


if($_FILES["billede"]["size"] > ($kb*1024)) {
die("Filen er mere end " . $kb . " kb");
}

move_uploaded_file($fra, $til);

?>
<html><head><title>Billedeupload</title>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.upfile.value == "" || thisform.upfile.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.upfile.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>

</head>

<body>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.billede.value == "" || thisform.billede.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.billede.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>
<br>
<form enctype="multipart/form-data" action="upload.php" method="post" onsubmit="return checkForm(this);">
Send this file: <input name="billede" type="file" size="20"/>
<input type="submit" value="Send File" />
</form>
</body>
</html>

Jeg mangler følgende funktioner, så der er stadig flere point at hente.

- Billedet der bliver uploadet omdøbes (starter med 1.jpg, 2.jpg, 3.gif osv.)
- url tilføjes til mysql database (fx /pics/1.jpg osv.) evrntuelt med id.
Avatar billede bertelsenbo Nybegynder
04. juni 2004 - 17:19 #26
Hov, lidt dobbelt konfekt.
Avatar billede sukos Juniormester
04. juni 2004 - 19:14 #27
jahhh, altså, det du så har indtil videre, det uploader jo bare hvad som helt!
Avatar billede sukos Juniormester
04. juni 2004 - 19:22 #28
Hvis du vil, er du velkommen til at sende mig en mail med et link til resultatet af

<?php
session_start();

// ca. 100 Kb må billedet fylde
$kb = 100;

// Det dir som der skal uploades til, med skråstreger
// Og skal ligge inde for "webscope"
$galleridir = "./galleri/";



if (isset($_FILES["upfile"])) {

$arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");

    if($_FILES["upfile"]["error"] > 0) {
    $_SESSION["besked"] = strtr($_FILES["upfile"]["error"], $arg);
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($_FILES["upfile"]["size"] > ($kb*1024)) {
    $_SESSION["besked"] = "Filen er for stor til upload!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if(false == ($str = getimagesize($_FILES["upfile"]["tmp_name"]))) {
    $_SESSION["besked"] = "Valgte fil til upload er ikke en billedfil!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    if($str[2] > 2) {
    $_SESSION["besked"] = "Kun jpg og gif filer kan uploades!!!";
    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();
    }

    $newname = strtolower($_FILES["upfile"]["name"]);

    $bad = "\'*^´`+}{][£!§½%¤#=¨áàãââçéèêëìíîïñòóôõöùúûüýÿ?,\"/";
    for($i = 0; $i < strlen($bad); $i++) {
    $newname = str_replace($bad[$i], "", $newname);
    }

    $replace = array("æ" => "ae", "ø" => "oe", "å" => "aa", " " => "_");

    $newname = strtr($newname, $replace);

    $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir;

    $ext = pathinfo($newname);
    $filtype = $ext["extension"]; // FILTYPEN
    $main = basename($newname, ".". $filtype); // FILNAVNET UDEN FILTYPE
    $i = 0;
    while (is_file($moveto . $newname)) {
    $i++;
    $newname = $main ."_". sprintf("%03u", $i) .".". $filtype;
    }


    if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $newname)) {
    $_SESSION["besked"] = "Billedet er blevet uploadet!";
    }else{
    $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!";
    }

    header("Location:". $_SERVER["PHP_SELF"] ."");
    exit();

}
?>

<html><head><title>Filupload</title>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.upfile.value == "" || thisform.upfile.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.upfile.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>

</head>

<body>

<?php

if(!is_dir($_SERVER["DOCUMENT_ROOT"] . $galleridir)) {
echo"Dir som fil skal flyttes til eksisterer ikke!!!";
}else{
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" onsubmit="return checkForm(this);">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($kb*1024); ?>">
<input name="upfile" type="file" size="32"><br>
<input type="submit" value="Upload">
</form>

<?php
if(isset($_SESSION["besked"])) {
echo"<p><b>". $_SESSION["besked"] ."</b>";
unset($_SESSION["besked"]);
}

}

show_source($_SERVER["SCRIPT_FILENAME"]);
?>
</body></html>

Altså, (IIS.................) ved ikke, men du skal lære noget om hvad man gør når man bruger PHP og skal håndtere brugerinpu8t!
Om du så er admin eller ej, er et fedt!
Avatar billede bertelsenbo Nybegynder
05. juni 2004 - 14:06 #29
sukos jeg skal ikke bruge din opskrift på et uploadscript, nu da "mit" virker som jeg vil have det til at gøre. Og den uploader ikke hvad som helst, kan kun uploade jpg osv.

Nu mangler jeg bare at få lortet ind i en mysql-tabel. Skal have navne outputtet i mysql tabellen, men $_FILES["billede"]["name"] virker ikke? Dér kunne jeg godt bruge hjælp.
Avatar billede bertelsenbo Nybegynder
05. juni 2004 - 14:08 #30
Og der ryger point i fjæsset til dem der har hjulpet mig til der her punkt. dvs sukos. Men skal lige have den sidste del til at spille.
Avatar billede sukos Juniormester
05. juni 2004 - 14:40 #31
http://www.eksperten.dk/spm/505913 til omdøbning

Prøvede lige at installere IIS, og det var jo rent skod! :O)

Det upload du har vist her, det uploader da alt?
Avatar billede bertelsenbo Nybegynder
05. juni 2004 - 20:02 #32
Nope, men hvis du ikke tror kan du da selv prøve. Jeg skider lige et kort stykke på omdøbning, skal bare tilføje det til mysql databasen. How?
Avatar billede sukos Juniormester
06. juni 2004 - 08:40 #33
Eks. på insert finder du også på linket herover.
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 10:34 #34
$name = strtolower($file_name);

mysql_connect("","","");
mysql_select_db("");
$insertSQL = "insert into pics (navn)
              values ('$name')";
mysql_query($insertSQL);

mysql_close();

Er det så rigtigt? (og ja, jeg har fjernet login info).
Avatar billede sukos Juniormester
06. juni 2004 - 10:50 #35
Æhh, jeg er selv til at holde PHP for sig, og andet for sig.

mysql_connect("","","");
mysql_select_db("");
$insertSQL = "INSERT INTO `pics` (`navn`)
              VALUES ('". $name ."')";
mysql_query($insertSQL);

mysql_close();


jow, ser rigtigt nok ud, men læg mærke til du ikke får en fejl hvis query går galt.
Altså, hvis noget ikke virker, så prøv at bruge:

mysql_connect("","","") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
$insertSQL = "insert into pics (navn)
              values ('$name')";
mysql_query($insertSQL) or die(mysql_error());

mysql_close();
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 12:05 #36
Ingen fejl der, men...
$name = strtolower($file_name); <- virker den nu rigtigt?
for den tilføjes til tabellen, men 'navn' blank hver gang :(
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 12:08 #37
Avatar billede sukos Juniormester
06. juni 2004 - 12:26 #38
Har jo ikke set hele dit script, men prøv med

$name = strtolower($_FILES["billede"]["name"]);
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 12:43 #39
Jeps, nu kommer der noget. Men når jeg opdaterer siden tilføjer den også en blank ting til tabellen. Kan man ikke lave det sådam at hvis der ikke er et billednavn, så tilføjer den det ikke?

if... $name = 0 eller noget?
Avatar billede sukos Juniormester
06. juni 2004 - 12:50 #40
hmm, er ikke lige helt med.

Er det når du trykker F5?
Eller mener du, at hvis der intet billede er, skal der ikke gemmes noget i DB?
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 12:57 #41
Når jeg trykker F5
Avatar billede sukos Juniormester
06. juni 2004 - 13:28 #42
if(isset($_FILES["billede"]) && trim($_FILES["billede"]["name"]) != "") {

flyt fil m.m. ..........................


// og slut af den if af med en header til filen selv
header("Location:". $_SERVER["PHP_SELF"] ."");
exit();

}
Avatar billede bertelsenbo Nybegynder
06. juni 2004 - 13:45 #43
Den fik jeg ikke helt fat på, men nu uploader den filen og skriver til mysql (27 gange!) og viser så "Siden kan ikke vises"..

<?php


if(isset($_FILES["billede"]) && trim($_FILES["billede"]["name"]) != "") {

$konfiguration["upload_bibliotek"] = "./pics/";
$kb = 50;

$fra = $_FILES["billede"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["billede"]["name"];


if($_FILES["billede"]["size"] > ($kb*1024)) {
die("Filen er mere end " . $kb . " kb");
}

move_uploaded_file($fra, $til);


$name = strtolower($_FILES["billede"]["name"]);

mysql_connect("","","");
mysql_select_db("");
$insertSQL = "insert into pics (navn)
              values ('$name')";
mysql_query($insertSQL) or die(mysql_error());

mysql_close();

header("Location:". $_SERVER["PHP_SELF"] ."");
exit();

}



?>
<html><head><title>Billedeupload</title>


</head>

<body>
<script language="JavaScript">
<!--
function checkForm(thisform){
if(thisform.billede.value == "" || thisform.billede.value == null) {
    alert("Vælg en fil til upload");
    return false;
} else {

validformFile = /(.jpg|.JPG|.jpeg|.JEPG|.gif|.GIF)$/;

    if(!validformFile.test(thisform.billede.value)){
    alert("Kun jpg og gif filer kan uploades!");
    return false;
    }
}
return true;
}
//-->
</script>
<br>
<form enctype="multipart/form-data" action="upload.php" method="post" onsubmit="return checkForm(this);">
Send this file: <input name="billede" type="file" size="20"/>
<input type="submit" value="Send File" />
</form>
</body>
</html>
Avatar billede bertelsenbo Nybegynder
07. juni 2004 - 12:51 #44
sukos, svar hvis du vil have lidt point. Vi kommer ikke videre, så jeg må selv finde ud af det.
Avatar billede sukos Juniormester
08. juni 2004 - 08:32 #45
Den her:
header("Location:". $_SERVER["PHP_SELF"] ."");

Prøv at ændre den til
header("Location:filnavn.php");
hvor filnavn.php er filen med uploadformen.

Problemet er vist at $_SERVER["DOCUMENT_ROOT"] faktisk er "et andet sted" i filsystemet, end der hvor  din side ligger.

Hvorfor den laver 27 inserts? :O) Måske p.g.a. den header?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester