Avatar billede Mik2000 Professor
08. oktober 2006 - 20:21 Der er 1 løsning

Upload script - jeg søger din hjælp

Hej.

Er ved at lave et upload script og vil gerne høre lidt feedback på det. Det kan uploade flere filer af gange og tjekke for diverse ting.

Det jeg er interesseret i er at I kommentere koden og skriver hvad jeg kunne have gjort bedre og lign.
F.eks. hvis jeg bruger dum kode, ikke har taget højde for noget eller lign.
Alle kommentarer modtages. Du behøver ikke skrive noget kode, men du behøver blot kommentere ting og give hints til rettelser.

Den består af 2 filer. Den som sender via form (upload.php) og den som modtager (upload_modtag.php)

På forhånd tak.

Herunder er begge filer


UPLOAD_MODTAG.PHP
<?
// -----------------------------------------------------------------------------------
// Indstillinger af upload
// -----------------------------------------------------------------------------------

$max_str_width_pixels = 4000;
$max_str_height_pixels = 4000;

$type_filer = array(".jpg", ".gif", ".png", ".jpeg", ".doc");

$max_str_mb = 0.06;

$max_str_kb_temp = $max_str_mb * 1024;
$max_str_kb = $max_str_kb_temp * 1024;

// -----------------------------------------------------------------------------------
// Slut på indstillinger. Ændre ikke mere nedaf
// -----------------------------------------------------------------------------------

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php //PHP ADODB document - made with PHAkt 3.7.0?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?

// Viser så længe der er nogle tilbage fra formen
while(list($key,$value) = each($_FILES[files][name]))
{
// Tjekker om der er angivet en fil
if(!empty($value)){ 
    $filename = $value; 
   
    // Ændrer mellemrum til _ og æ, ø og å
    $filename = str_replace(" ", '_', $value);
    $filename = str_replace("æ", 'ae', $value);
    $filename = str_replace("ø", 'oe', $value);
    $filename = str_replace("å", 'aa', $value);
   
    // Upload sted og filnavn
    $add = "upimg/$filename";
                       
    // Henter billedinformation
    $image_info = getimagesize($_FILES[files][tmp_name][$key]);
   
    // Finder filendelsen f.eks. .gif
    $filendelse = strstr($_FILES[files][name][$key],'.');
   
    // Hvis det er rigtig filstørrelse og under max værdierne gemmes det ellers vises fejlmeddelse
    if (in_array($filendelse, $type_filer) && $max_str_kb > $_FILES[files][size][$key] && $image_info[0] < $max_str_width_pixels && $image_info[1] < $max_str_height_pixels) {
        copy($_FILES[files][tmp_name][$key], $add);   
        chmod("$add",0777);
        echo "<br>Filen ".$_FILES[files][name][$key]." er lagt op på serveren<br>";
    } else {
   
        // Fejlmeddelser påbegyndes herunder
       
        echo "<br><b>Fejl i ".$_FILES[files][name][$key].":</b><br> ";
        if(!in_array($filendelse, $type_filer)) {
            echo  "Denne fil er ikke en godkendt filtype.<br>";
        }
   
        if($max_str_kb < $_FILES[files][size][$key]) {
            echo "Denne fil er for stor. Maks størrelse i er: ".$max_str_mb." mb<br>";
        }

        if($image_info[0] > $max_str_width_pixels) {
              echo "Denne fil er for stor i bredden i pixels. Maks størrelse i er: ".$max_str_width_pixels." pixels i bredden<br>";
        }

        if($image_info[1] > $max_str_height_pixels) {
            echo "Denne fil er for stor i højden i pixels. Maks størrelse i er: ".$max_str_width_pixels." pixels i højden<br>";
        }
       
    }
       
}
}
?>
</body>
</html>

// ----------------------------------------------------
// NY FIL HERUNDER
// ----------------------------------------------------


// UPLOAD.PHP:
<?
// -----------------------------------------------------------------------------------
// Indstillinger af upload
// -----------------------------------------------------------------------------------

// Antal filer man maks kan uploade
$max_no_img=3;

// -----------------------------------------------------------------------------------
// Slut på indstillinger. Ændre ikke mere nedaf
// -----------------------------------------------------------------------------------
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php //PHP ADODB document - made with PHAkt 3.7.0?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
echo "<form method=post action=upload_modtag.php enctype='multipart/form-data'>";
echo "<table border='0' width='350' cellspacing='0' cellpadding='3' align=center>";

// Så længe den ikke har nået maks værdien for antal uploads, viser den en ny upload boks
for($i=1; $i<=$max_no_img; $i++){
echo "<tr><td>Fil $i: </td><td>
<input type=file name='files[]' class='bginput'></td></tr>";
}

echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>";
echo "</form> </table>";
?>
</body>
</html>
Avatar billede Mik2000 Professor
10. oktober 2006 - 17:45 #1
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