Avatar billede straszek Praktikant
12. november 2004 - 10:58 Der er 7 kommentarer og
1 løsning

tilpasning af upload script

Davs

Jeg er ved at lave et nyhedssystem hvor det skal være muligt at tilknytte en fil til nyheden.

Til upload delen har jeg fundet et script her på eksperten, men det har brug for lidt tilpasning, som jeg ikke lige selv kan gennemskues hvordan skal gøres.

Scriptet brokker sig nemlig hvis der ikke er valgt en fil til upload - og det vil jeg gerne undgå, så det er op til brugeren om der skal tilknyttes en fil eller ej.

scriptet:
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/doc", "image/jpeg", "image/pjpeg", "image/png", "text/pdf", "application/pdf", "application/msword", "application/vnd.ms-excel" );

//stien, hvortil filerne skal placeres   
$dist = "/home/.sites/148/site16/web/filer/";

//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"filen blev oprettet <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)
$files = $_FILES['upfile']['name'];
$temparr = explode(".", $files);
$temparr[count($temparr)-2] = time();
$files = implode(".", $temparr);

$name = "$gruppeid$files";


move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $name);
       
        }else{
        echo"Sorry, men upload skete IKKE!";
    }
Avatar billede henninghabor Nybegynder
12. november 2004 - 11:31 #1
Hej,

Slet fra if (isset... }else ... indtil her! if (!in_array
//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)) {
Avatar billede henninghabor Nybegynder
12. november 2004 - 11:31 #2
Så det kommer til at være:

//stien, hvortil filerne skal placeres   
$dist = "/home/.sites/148/site16/web/filer/";

if (!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;
    }
Avatar billede straszek Praktikant
12. november 2004 - 12:24 #3
Det er desværre ikke noget, da der efterfølgende tjekkes for om den valgte filtype er en "lovlig" fil type - og når jeg sletter det ovenstående - så får jeg beskeden om at den valgte filtype ikke er lovlig.
Avatar billede henninghabor Nybegynder
12. november 2004 - 12:29 #4
Så prøv at nøjes med at slette  && $_FILES['upfile']['name'] == "" 2 steder.
Avatar billede straszek Praktikant
12. november 2004 - 12:34 #5
Får stadig besked om at inge fil er valgt

Koden som den ser ud nu:

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/doc", "image/jpeg", "image/pjpeg", "image/png", "text/pdf", "application/pdf", "application/msword", "application/vnd.ms-excel" );

//stien, hvortil filerne skal placeres   
$dist = "/home/.sites/148/site16/web/filer/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_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"filen blev oprettet <p>\n";

    if (isset($_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)
$files = $_FILES['upfile']['name'];
$temparr = explode(".", $files);
$temparr[count($temparr)-2] = time();
$files = implode(".", $temparr);

$name = "$gruppeid$files";
echo "adsd $files";

move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $name);
       
        }else{
        echo"Sorry, men upload skete IKKE!";
    }


}}
Avatar billede sukos Juniormester
12. november 2004 - 12:49 #6
Hvad med

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

//Filer som kan uploades
$filetyper = array("image/gif", "text/doc", "image/jpeg", "image/pjpeg", "image/png", "text/pdf", "application/pdf", "application/msword", "application/vnd.ms-excel );

//stien, hvortil filerne skal placeres 
$dist = "/home/.sites/148/site16/web/filer/";

    if (in_array($_FILES['upfile']['type'], $filetyper)) {

//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)
        $files = $_FILES['upfile']['name'];
        $temparr = explode(".", $files);
        $temparr[count($temparr)-2] = time();
        $files = implode(".", $temparr);

        $name = $gruppeid . $files;
        echo "adsd ". $files;

        move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $name);
     
        }else{
        echo"Sorry, men upload skete IKKE! (nogen leger med uploadformen!!!";
        }

    }else{
    echo"valgte filtype er ikke tilladt for upload!";
    }

}
Avatar billede straszek Praktikant
12. november 2004 - 13:03 #7
Sukos - det var hvad der skulle til.

Smid et svare og du skal få point
Avatar billede sukos Juniormester
12. november 2004 - 13:03 #8
ok :O)
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