Avatar billede dizzim Nybegynder
04. november 2004 - 00:05 Der er 3 kommentarer og
1 løsning

renaming af fil under upload + verificering at det er et billede

Hey,
jeg har c/p'ed det her script og skal til at tilpasse det min side.
Men jeg har lidt problemer ting jeg gerne vil ha tilføjet/ændret:
1. Jeg vil gerne ha tjekket om det er et billede.
2. Jeg vil gerne ha filen renamet. (havde selv tænkt på at bruge mktime() men hvis der er noget bedre så bar sig til.
3. navnet fra filen skal også bruges senere til indsættelse i en mySQL db så det skal nok kaldes i en variabel først.
og til sidst 4. Filen skal uploades til en mappe der ligger tættere på roden end den mappe side1/2 ligger i.

Her har i den del af sciptet der har noget med billedet at gøre:

side1:

echo '<form method="post" action="side2" enctype="multipart/form-data">
<input name="TheFile" type="file">
<input type="submit" name="Submit">
</form>';


side2:

<?php
$File_path = " en mappe tætter på roden end side1/2";

if ($_POST['Submit'] != "") {

    $File_name = $_FILES['TheFile']['name'];
    $File = $_FILES['TheFile']['tmp_name'];
    if (!(file_exists("$File_path$File_name"))) {

        $FileCopyWorked = @copy("$File", "$File_path$File_name");
    }
    if ($FileCopyWorked) {
        echo "fæææææææærdiiiiiiiig";
    }
    else
    {
   
        echo "noget gik galt";
    }
}
?>
Avatar billede googolplex Novice
04. november 2004 - 06:29 #1
Prøv denne:

<?php

/* Funktion der uploader en fil af tilladt filtype (MIME) med en maximal størrelse til et bibliotek */
/* Funktionen skal fodres med $_FILES['navn'] */
/* String upload_fil(Array fil [, Integer max_stoerrelse [, String bibliotek [, Array filtyper_tilladt]]])  */


function upload_fil($fil, $max_stoerrelse = 100, $bibliotek = 'default', $filtyper_tilladt = 'default')
{
    if ($bibliotek == 'default') {
        $bibliotek = '/upload';
    }

    if ($filtyper_tilladt == 'default') {
        $filtyper_tilladt = array('image/bmp', 'image/jpeg', 'image/pjpeg', 'image/tiff', 'image/png', 'image/gif', 'application/pdf', 'application/zip', 'application/arj', 'application/x-zip-compressed', 'application/octet-stream');
    }

    if ($fil['size'] > 0) {
        $filnavn = strtolower(ereg_replace(' ', '_', $fil['name']));
        $fil_sti = $bibliotek . '/' . $filnavn;
        $fra = $fil['tmp_name'];
        $fil_stoerrelse = filesize($fra)/1024;
        $filtype = $fil['type'];
        $fejl = 0;

        if (!in_array($filtype, $filtyper_tilladt)) {
            echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>";
            $fejl = 1;
        }

        if ($fil_stoerrelse > $max_stoerrelse) {
            echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>";
            $fejl = 1;
        }

        if ($fejl == 0) {
            if (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) {
                $pos = strrpos($filnavn, '.');
                $foerpos = substr($filnavn, 0, $pos);
                $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
                $i = 2;

                echo "<p>Filen '$filnavn' eksisterer allerede i '$bibliotek' og filen omdøbes derfor til ";

                while (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) {
                    $filnavn = $foerpos . '(' . $i . ').' . $efterpos;
                    $fil_sti = $bibliotek . '/' . $filnavn;
                    $i++;
                }

                echo "'$filnavn'</p>";
            }

            $til = $_SERVER['DOCUMENT_ROOT'] . $fil_sti;

            if (move_uploaded_file($fra, $til)) {
                echo "<p>Filen '$filnavn' er uploadet!</p>";
                return $fil_sti;
            } else {
                echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    } else {
        echo '<p>Der er ikke vedhæftet nogen fil!</p>';
    }
}
Avatar billede dizzim Nybegynder
04. november 2004 - 15:51 #2
scriptet er sikkert fint nok.. men kan ikk få det til at virke...
1. Fatter ikk hvor hvad det her gør?:
    if ($bibliotek == 'default') {
        $bibliotek = '/upload';
    }

2. Jeg har som sagt ingen viden om php mht. filintegrering så kan du hjælpe med at "fodre med $_FILES['navn']" ?
Avatar billede dizzim Nybegynder
15. november 2004 - 17:44 #3
BUMP
Avatar billede dizzim Nybegynder
06. januar 2005 - 17:57 #4
hvis ingen kan tager jeg dem da selv så :)
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