Problemer med filupload?

Tags:    php

Hej,

Jeg har problemer med dette filupload-script!

Filen skal ligge i mappen "images", og den kommer i en streng ved navn $fil fra en form.

<?

//------------------------------------------------------
// Kontrol af login-oplysninger
//*****************************

$res = mysql_query("SELECT id FROM login WHERE bruger='$user' AND password='$pass'");

if ((mysql_num_rows($res) == 1)) {


//------------------------------------------------------
// Upload af baggrundsbillede
//***************************

if($fil){


//Her skal filen flyttes fra
$fra = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//Hvis filen er et jpg, jpeg eller gif billede
if($ext == "jpg" || $ext == "jpeg" || $ext == "gif"){

$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = $tid . ”_” . rand(1, 1000000) . $ext;

//Her er vores destination
$til = "../images/grafik/menu/" . $nytNavn;

//Her sker det magiske:
move_uploaded_file($fra, $til);

}



}


//------------------------------------------------------
// Redigering af farve
//********************

if($send){


switch($farve){

case(1):
$kode = "bgcolor=$specifik";
break;

case(2):
$kode = "background=images/grafik/menu/$filnavn_name";
break;

default:
$kode = "bgcolor=$farve";
break;

}


mysql_query(" UPDATE grafik SET menu='$kode' WHERE id = '1' ") or print mysql_error();


echo "<p align=center><img border=0 src=images/done.gif width=300 height=200></p>";


} else {


//------------------------------------------------------

?>



1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hej,

Jeg har problemer med dette filupload-script!

Filen skal ligge i mappen "images", og den kommer i en streng ved navn $fil fra en form.

<?

//------------------------------------------------------
// Kontrol af login-oplysninger
//*****************************

$res = mysql_query("SELECT id FROM login WHERE bruger='$user' AND password='$pass'");

if ((mysql_num_rows($res) == 1)) {


//------------------------------------------------------
// Upload af baggrundsbillede
//***************************

if($fil){


//Her skal filen flyttes fra
$fra = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//Hvis filen er et jpg, jpeg eller gif billede
if($ext == "jpg" || $ext == "jpeg" || $ext == "gif"){

$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = $tid . ”_” . rand(1, 1000000) . $ext;

//Her er vores destination
$til = "../images/grafik/menu/" . $nytNavn;

//Her sker det magiske:
move_uploaded_file($fra, $til);

}



}


//------------------------------------------------------
// Redigering af farve
//********************

if($send){


switch($farve){

case(1):
$kode = "bgcolor=$specifik";
break;

case(2):
$kode = "background=images/grafik/menu/$filnavn_name";
break;

default:
$kode = "bgcolor=$farve";
break;

}


mysql_query(" UPDATE grafik SET menu='$kode' WHERE id = '1' ") or print mysql_error();


echo "<p align=center><img border=0 src=images/done.gif width=300 height=200></p>";


} else {


//------------------------------------------------------

?>


Jeg er ikke lige sikker på hvad der er galt helt præcist, men noget kode til fx at upload billeder, kunne se således ud:

// hvis filen er blevet uploadet korrekt til serveren
if ($_FILES['fil']['tmp_name']) {

// sti til til hvor billeder skal ligges
$path = '/path/to/image_dir/';

// lav et fil navn som ikke allerede findes
$temp_name = tempnam($path,time().'_');

// slet navnet, da vi kun skal bruge det som en streng
@unlink($temp_name);

// find fil typen
$ext = array_pop(explode('.',$_FILES['fil']['tmp_name']));
$temp_name .= '.'.$ext;

// saa skal vi lige tjekke om det er et billede
// kan jo self ogsaa tjekke om det er jpg jpeg png gif, osv.
// men hvis typen er image/type saa er det et billede...
// vi bliver noedt til at bruge 2 ligmedtegn, da den formentlig er
// paa den foerste position, dvs '0', og der er det samme som 'false'
if (strpos($_FILES['fil']['type'],'image/') !== false) {
@move_uploaded_file($_FILES['fil']['tmp_name'],$temp_name);
}

}

Dette burde alt i alt virke :p hehe
Men ved ikke om det var det du ledte efter.

Mvh Bob




t