Avatar billede heden Nybegynder
20. december 2004 - 11:26 Der er 3 kommentarer og
1 løsning

Billede opload fejler?

Hej Eksperter, jeg skal ligge et billede op i 2 mapper, men i den ene mappe som hedder "forside" må den kun få navnet "forside.jpg" og i den anden mappe som hedder "test" lige nu er det ligegyldigt hvad navn den får.

jeg har en kode der ser sådan her ud:

<?php

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

//til brug for info om filtyper
$str1 = $_FILES['upfile']['name'];
$str2 = $_FILES['upfile']['size'];
$str3 = $_FILES['upfile']['type'];

//Filer som kan uploades
$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png");

//stien, hvortil filerne skal placeres   
$dist = "../forside/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
echo"Ingen fil valgt! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;

}elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>$str3</b> er ikke tilladt for upload! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;
    }

echo"&Oslash;nsket fil til upload:<p>\n";

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

//se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
$fil = "skifttal.txt";
if (!($fp = fopen($fil, "r"))) die ("Kan ikke åbne tæller fil.");
//Læser de første 20 chars
$filer = (int) fread($fp, 20);
fclose($fp);
++$filer;
$fp = fopen($fil, "w");
fwrite($fp, $filer);
fclose($fp);


// Array med filtyper, til brug for det endelige filnavn
$filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");

$str = getimagesize($_FILES['upfile']['tmp_name']);
$type = strtr($str[2], $filetypes);
$nytnavn = "forside.jpg";
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);
        }else{
        echo"Desværre, men upload skete IKKE!";
    }


echo "<b>Navn:</b> $str1, <b>st&oslash;rrelse:</b> $str2 bytes, <b>filtype:</b> $str3<br>\n";
echo"</p>";
    }
}else{

echo "Du skal v&aelig;lge en fil til upload. <a href=\"upload.php\">upload.php</a>";
}
?>
<?php

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

//til brug for info om filtyper
$str1 = $_FILES['upfile']['name'];
$str2 = $_FILES['upfile']['size'];
$str3 = $_FILES['upfile']['type'];

//Filer som kan uploades
$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png");

//stien, hvortil filerne skal placeres   
$dist = "../test/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
echo"Ingen fil valgt! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;

}elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>$str3</b> er ikke tilladt for upload! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;
    }

echo"&Oslash;nsket fil til upload:<p>\n";

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

//se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
$fil = "test.txt";
if (!($fp = fopen($fil, "r"))) die ("Kan ikke åbne tæller fil.");
//Læser de første 20 chars
$filer = (int) fread($fp, 20);
fclose($fp);
++$filer;
$fp = fopen($fil, "w");
fwrite($fp, $filer);
fclose($fp);


// Array med filtyper, til brug for det endelige filnavn
$filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");

$str = getimagesize($_FILES['upfile']['tmp_name']);
$type = strtr($str[2], $filetypes);
$nytnavn = ($filer+1) .".". $type;
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);
        }else{
        echo"Desværre, men upload skete IKKE!";
    }


echo "<b>Navn:</b> $str1, <b>st&oslash;rrelse:</b> $str2 bytes, <b>filtype:</b> $str3<br>\n";
echo"</p>";
    }
}else{

echo "Du skal v&aelig;lge en fil til upload. <a href=\"upload.php\">upload.php</a>";
}
?>

kan det bruges?
Avatar billede prec Nybegynder
20. december 2004 - 15:17 #1
du forsøger at flytte filen 2 gange med move_uploaded_file, det kan du logisk nok ikke da den bliver slettet efter første gang du flytter den, kopier den til den anden lokation fra den første lokation istedet, og drop at checke filnavn osv 2 gange, upraktisk og unødvendigt
Avatar billede heden Nybegynder
20. december 2004 - 15:22 #2
dvs sådan??:

<?php

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

//til brug for info om filtyper
$str1 = $_FILES['upfile']['name'];
$str2 = $_FILES['upfile']['size'];
$str3 = $_FILES['upfile']['type'];

//Filer som kan uploades
$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png");

//stien, hvortil filerne skal placeres   
$dist = "../forside/";
$dist2 = "../test/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
echo"Ingen fil valgt! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;

}elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>$str3</b> er ikke tilladt for upload! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;
    }

echo"&Oslash;nsket fil til upload:<p>\n";

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

//se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
$fil = "skifttal.txt";
if (!($fp = fopen($fil, "r"))) die ("Kan ikke åbne tæller fil.");
//Læser de første 20 chars
$filer = (int) fread($fp, 20);
fclose($fp);
++$filer;
$fp = fopen($fil, "w");
fwrite($fp, $filer);
fclose($fp);


// Array med filtyper, til brug for det endelige filnavn
$filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");

$str = getimagesize($_FILES['upfile']['tmp_name']);
$type = strtr($str[2], $filetypes);
$nytnavn = "forside.jpg";
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);
        }else{
        echo"Desværre, men upload skete IKKE!";
    }
 
//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
// Array med filtyper, til brug for det endelige filnavn
$filetypes2 = array(1 => "gif", 2 => "jpg", 3 => "png");

$str2 = getimagesize($_FILES['upfile']['tmp_name']);
$type2 = strtr($str[2], $filetypes);
$nytnavn2 = ($filer+1) .".". $type;
move_uploaded_file2 ($_FILES['upfile']['tmp_name'], $dist2 . $nytnavn2);


echo "<b>Navn:</b> $str1, <b>st&oslash;rrelse:</b> $str2 bytes, <b>filtype:</b> $str3<br>\n";
echo"</p>";
    }
}else{

echo "Du skal v&aelig;lge en fil til upload. <a href=\"upload.php\">upload.php</a>";
}
?>
Avatar billede heden Nybegynder
20. december 2004 - 15:28 #3
nææ.. er ikke helt med .. kan du samle det :/?
Avatar billede heden Nybegynder
28. april 2005 - 11:42 #4
-lukket-
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