Avatar billede s-tone Nybegynder
08. september 2005 - 10:49 Der er 1 kommentar og
1 løsning

Multi upload

Hej, jeg har et script til at uploade billeder med, men det kan kun uploade 1 billede af gangen.
Håber der en der kan hjælpe mig med det.
Det ser sådan ud:

<?
// get variables for fields on upload screen
    $thefile = $_FILES['thefile'];
    $tos = $_POST['tos'];

    $currentip = $_SERVER['REMOTE_ADDR'];
    $messages = "";

    // check for blocked ip address
    if ($currentip != "") {
        $link = mysql_connect($db_server, $db_user, $db_password) or die("Could not connect to the database.");
        mysql_select_db($db_name) or die("Could not select the database.");
        $query = "select ip from blocked where ip = '$currentip'";
        $result = mysql_query($query) or die("Query failed.");
        $num_rows = mysql_num_rows($result);
        if ($num_rows > 0) {
            $messages .= "Din IP adresse (" . $currentip . ") er blevet blokeret for denne service.<br><br>";
        }
    }

    // check for a file
    if (!isset($thefile) || $thefile['name'] == "") {
        $messages .= "Du skal vælge et billede der skal uploades.<br><br></a>";
    }

    // check to see if tos was read
    if ($tos == "") {
        $messages .= "Du skal acceptere vores vilkår for at bruge denne service.<br><br>";
    }

    if ($messages == "") {
        // check for valid file type
        if (!in_array_nocase($thefile['type'], $valid_mime_types)) {
            $messages .= "<em>" . $thefile['name'] . "</em> er ikke et tilladt format (" . $valid_mime_types_display . ").<br><br>";
        }

        // check for valid file extension
        $thefile['name'] = strtolower($thefile['name']);
        $file_ext = substr($thefile['name'], strlen($thefile['name']) - 3, strlen($thefile['name']));
        // fix for JPEG names files
        if ($file_ext == "peg") {
            $file_ext = "jpg";
        }
        if (!in_array_nocase($file_ext, $valid_file_ext)) {
            $messages .= "<em>" . $thefile['name'] . "</em> (".$file_ext.") har ikke en gyldig endelse (" . $valid_mime_types_display . ").<br><br>";
        }

        // check for valid file size
        if ($thefile['size'] > ($max_file_size_kb * 1024)) {
            $messages .= "<em>" . $thefile['name'] . "</em> overskrider grænsen på " . $max_file_size_kb . " Kb.<br><br>";
        }
    }

    // save the file, if no error messages
    if ($messages == "") {
        $max_file_size_byes = $max_file_size_kb * 1024;

        // SAVE THE PICTURE
        $newFileName = newImageName($thefile['name']);
        $newFile = $server_dir . $newFileName;
        $newFileUrl = $image_url . $newFileName;
        $newFileUrlLink = $server_save_directory . $newFileName;
        if ($file_ext == "jpg" || $file_ext == "png" || $file_ext == "gif") {
            $tnFileName = "tn_" . substr($newFileName, 0, strlen($newFileName) - 3) . "jpg";
            $tnFile = $server_dir . $tnFileName;
            $tnFileUrl = $image_url . $tnFileName;
        } else {
            $tnFileName = "";
            $tnFile = "";
            $tnFileUrl = "";
        }
        $filesize = $thefile['size'];
        $newID = "";
        if (!@copy($thefile['tmp_name'], $newFile)) {
            $messages .= "En uventede fejl er opstået, prøv venligst igen";
        } else {
            // add to database
            $query = "INSERT INTO images (filename, tn_filename, filepath, ip, filesize) VALUES ('$newFileName', '$tnFileName', '$server_save_directory', '$currentip', $filesize)";
            mysql_query($query) or die("Database entry failed.");
            $newID = mysql_insert_id();
        }

        if ($file_ext == "jpg" || $file_ext == "png" || $file_ext == "gif") {
            if ($file_ext == "jpg") {
                $source_id = imagecreatefromjpeg($newFile);
            } elseif ($file_ext == "png") {
                $source_id = imagecreatefrompng($newFile);
            } elseif ($file_ext == "gif") {
                $source_id = imagecreatefromgif($newFile);
            }

            $true_width = imagesx($source_id);
            $true_height = imagesy($source_id);

            // create thumb
            if ($true_width > $thumbnail_size_max || $true_height > $thumbnail_size_max) {
                if ($true_width >= $true_height) {
                    $dest_width = $thumbnail_size_max;
                    $dest_height = ($dest_width / $true_width) * $true_height;
                } else {
                    $dest_height = $thumbnail_size_max;
                    $dest_width = ($dest_height / $true_height) * $true_width;
                }
                if ($thefile['type'] == "image/jpeg" || $thefile['type'] == "image/pjpeg") {
                    $target_id = imagecreatetruecolor($dest_width, $dest_height);
                } elseif ($thefile['type'] == "image/png" || $thefile['type'] == "image/x-png") {
                    $target_id = imagecreatetruecolor($dest_width, $dest_height);
                } else {
                    $target_id = imagecreatetruecolor($dest_width, $dest_height);
                }
                $target_pic = imagecopyresized($target_id, $source_id, 0, 0, 0, 0, $dest_width, $dest_height, $true_width, $true_height);
   
                // create a thumbnail in JPEG format
                imagejpeg($target_id, $tnFile, $thumbnail_quality);
   
                imagedestroy($target_id);
            } else {
                copy($newFile, $tnFile);
            }
        }
    }
    mysql_close($link);

    // create URL links to display to user
    $showURL1 = false;  // image on hosted page - image only
    $showURL2 = false;  // direct link to file - all
    $showURL3 = false;  // HTML for img - image only
    $showURL4 = false;  // tags - image only
    $showURL5 = false;  // thumbnail pic - image only

    // determine flags
    $showURL2 = true;
    if ($file_ext == "jpg" || $file_ext == "gif" || $file_ext == "png" || $file_ext == "bmp") {
        $showURL1 = true;
        $showURL3 = true;
        $showURL4 = true;
    }
    if ($file_ext == "jpg" || $file_ext == "gif" || $file_ext == "png") {
        $showURL5 = true;
    }

    function newImageName($fname) {
        $timestamp = time();
        $new_image_file_ext = substr($fname, strlen($fname) - 3, strlen($fname));
        if ($new_image_file_ext == "peg") {
            $ext = ".jpg";
        } else {
            $ext = "." . $new_image_file_ext;
        }
        $newfilename = randString() . substr($timestamp, strlen(timestamp) - 4, strlen(timestamp)) . $ext;
        return $newfilename;
    }

    function randString() {
        $newstring="";
        while(strlen($newstring) < 3) {
            $randnum = mt_rand(0,61);
            if ($randnum < 10) {
                $newstring .= chr($randnum + 48);
            } elseif ($randnum < 36) {
                $newstring .= chr($randnum + 55);
            } else {
                $newstring .= chr($randnum + 61);
            }
        }
        return $newstring;
    }

    function in_array_nocase($item, $array) {
        $item = &strtoupper($item);
        foreach($array as $element) {
            if ($item == strtoupper($element)) {
                return true;
            }
        }
        return false;
    }

?>
Avatar billede s-tone Nybegynder
08. september 2005 - 13:20 #1
Nu har selv prøvat lege lidt med det nedeunder, men hvad skal jeg gøre af: $thefile = $_FILES['thefile'];
nogen hjælp?

$antal = 0;

//Find antallet af filer til upload med en for-løkke
for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) {

    if ($_FILES["upfile"]["name"][$i] !="") {
    //Læg en til $antal for hver fil.
    $antal++;
        if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) {

    }
        if($antal < 1) {
        $messages .= "Du skal vælge et billede.<br><br>";
Avatar billede s-tone Nybegynder
08. september 2005 - 21:27 #2
Lukker
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