Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 02:30 Der er 17 kommentarer og
1 løsning

uploade

Hmm jeg har et uploade script!
men der er 4 ting jeg simpelhen ikke kan finde ud af!
1. hvordan kan jeg omdøbe den uploadet til til $_GET[clanid].".gif"?
2. hvordan kan jeg tjække om det er en gif fil?
3. hvordan kan jeg tjække om at den ikke flyder mere end $my_max_file_size
4. hvordan kan jeg tjække om at billede ikke er særere ned $image_max_width*$image_max_height?

<?
$userfilen=$_FILES['userfile']['tmp_name'];
$userfilename=$_FILES['userfile']['name'];
$my_max_file_size    = "102400";
$image_max_width    = "300";
$image_max_height    = "300";


if ($submit) {
  if(move_uploaded_file($userfilen, "../logos/".$_GET[clanid].".gif")) {
            echo "<script>alert('$userfilename er nu blevet uploadet');</script>";
        } else {
            echo "kunne ikke uploade skidtet :/";
        }
}
echo "<br><br>";
echo $userfilen;
echo "<br>";
echo $userfilename;

?>

<form name="form" enctype="multipart/form-data" action="<?=$PHP_SELF;?>" method="post">
<input type="file" name="userfile">
<input type="submit" name="submit" value="upload fil -> "><br><br>
</form>
Avatar billede basicq Nybegynder
08. februar 2003 - 02:59 #1
Først sætter du dine krav. (eks)
$my_max_file_size = "102400";
$image_max_width = "300";
$image_max_height = "300";
$filtype = "image/gif"; // kun .gif billeder

Så kan du bruge noget af det her.
$image = getimagesize("$picfile_name");
if ($image[0] > $image_max_width)
if ($image[1] > $image_max_height)

$file_size = filesize("$picfile_name");
if ($file_size > $my_max_file_size)

Hvordan du ændre fil navnet ved jeg ikke. yet
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 03:13 #2
hmm hvad gør jeg galt her?

<?
$userfilen=$_FILES['userfile']['tmp_name'];
$userfilename=$_FILES['userfile']['name'];
$my_max_file_size    = "102400";
$image_max_width    = "300";
$image_max_height    = "300";
$filtype = "image/gif"; // kun .gif billeder



if ($submit) {
$good="0";
$image = getimagesize("$userfilen");
if ($image[0] > $image_max_width){ $good="1"; echo "filen er".$image[0]."*";  }else{ $good="0";  echo "filen er".$image[0]."*";  }
if ($image[1] > $image_max_height){ $good="1"; echo $image[1]; }else{ $good="0";  echo $image[1]; }
$file_size = filesize("$userfilen");
if ($file_size > $my_max_file_size){ $good="1"; echo "Og fylder ".$file_size; }else{ $good="0";  echo "Og fylder ".$file_size; }
   
if($good=="1"){
  if(move_uploaded_file($userfilen, "../logos/".$_GET[clanid].".gif")) {
            echo "<script>alert('$userfilename er nu blevet uploadet');</script>";
        } else {
            echo "kunne ikke uploade skidtet :/";
        }
}
}
echo "<br><br>";
echo $userfilen;
echo "<br>";
echo $userfilename;

?>
Avatar billede basicq Nybegynder
08. februar 2003 - 03:17 #3
Jeg tror du kan bruge det her, hvis du har skrive rettighedder til din mappe med billederne i (chmod 755). rename("fil.htm", "ny_fil.html");

Ellers kan du måske bruge den her har ikke selv prøvet om det virker.
chmod ("din/sti", 0755);
Avatar billede basicq Nybegynder
08. februar 2003 - 03:22 #4
Jeg mener at du først skal kopier den over i din mappe og så tjekke om filen over holder dine krav gør de ikke det så sletter du filen.
Avatar billede basicq Nybegynder
08. februar 2003 - 03:31 #5
Jeg har den her lidt snørklet kode som du kan se lidt på (den virker). Jeg går i seng nu så held og lykke med projektet.

if($picfile=="")
{
echo"Vælg en fil.";
}
else
{
    require("upload.inc");
    $i = 0;
    $handle = opendir($dir);
    while ($file = readdir($handle))
    {
        if ($file != "." && $file != "..")
        {
            $i++;
            $split = split("\.", $file);
            echo ("$i: $split[0]".".$split[1]".".$split[2]<br>");
        }

        $fil = "$dir/$file";
        if($fil != "$dir/$picfile_name")
        {   
            copy($picfile, "$dir/$picfile_name");
           
            require("upload.inc");
            if($picfile_type != $filtype)
            {
                echo"Forkert fil type, du kan kun bruge gif filer.<br>";
                unlink("$dir/$picfile_name");
                echo "Tryk på tilbage i din browser.";
                return;
            }
           
            require("upload.inc");
            $handle = opendir($dir);
            $image = getimagesize("$dir/$picfile_name");
            if($image[0]>$maxwidth || $image[1]>$maxheight)
            {
                echo "Dit billedet er $image[0] pixel bredt og $image[1] pixel højt.<br>";
                echo "Billedet må max være $maxwidth pixel bredt og $maxheight pixel højt.<br>";
                echo "Husk dit billede max må fyle $maxfilesize bytes<br>";
                echo "Tryk på tilbage i din browser.";
                unlink("$dir/$picfile_name");
                return;
            }
           
            require("upload.inc");
            $file_size = filesize("$dir/$picfile_name");
            if ($file_size > $maxfilesize)
            {
                unlink("$dir/$picfile_name");
                echo"Filen fylder $file_size Bytes og er for stor.<br>";
                echo"Den må max fylde $maxfilesize Bytes!<br>";
                echo "Tryk på tilbage i din browser.";
                return;
            }

            require("../dbconnection.php");
            mysql_query("UPDATE billeder SET billede='$picfile_name' WHERE nr='$varnr'");
//            mysql_query("UPDATE beboere SET billede='$picfile_name' WHERE varnr='$varnr'");
            mysql_close($db);
            echo ("<script language=\"JavaScript\">self.history.back()</script>");
//            return;
        }
    }
    unlink($picfile);
    closedir($handle);
}
Avatar billede nicklasb Nybegynder
08. februar 2003 - 10:54 #6
basicq -> Undskyld jeg blander mig.. Men ville det ikke være en god ide at skrive hvad du har i upload.inc ??
Ellers bliver det jo lidt svært at vide hvad der fx skal stå i $dir ;)
Avatar billede basicq Nybegynder
08. februar 2003 - 12:00 #7
Det er klart...

<?
/* Disse variabler skal sættes efter behov */
$maxwidth = 60; // pixel
$maxheight = 60; // pixel
$maxfilesize = 3584; // byte 3,5 kb
$filtype = "image/gif";
$dir = "$DOCUMENT_ROOT/noget/noget";
$picdir = "../../pic/bebopic/"; // Til beboereadmin.php siden
$picdir_index = "pic/bebopic/"; // Til index.php siden
?>
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 13:44 #8
takker! jeg vil lige se om jeg kan fp det til at virke!
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 14:03 #9
Fatal error: Maximum execution time of 30 seconds exceeded in /home/doomstone/www/admin/upload.inc on line 2 <-- jeg får den fejl! hvad betyder det?
og en gang imellem få jeg en accesc denind! men mappen er chmod 777
Hvil sted min fil skal ligge i er "../logos/" er dette så rgitgt?
<?
$maxwidth = 800; // pixel
$maxheight = 80; // pixel
$maxfilesize = 50000; // byte 3,5 kb
$filtype = "image/gif";
#$dir = "$DOCUMENT_ROOT/noget/noget";
$dir = "../logos";
$picdir = "../logos"; // Til beboereadmin.php siden
$picdir_index = "logos/"; // Til index.php siden
?>
Avatar billede basicq Nybegynder
08. februar 2003 - 14:21 #10
$dir = $DOCUMENT_ROOT/så/hele/stien/til/logos
Avatar billede basicq Nybegynder
08. februar 2003 - 14:23 #11
Jeg bruger mit lokalt så jeg er ikke sikker på at du skal bruge $DOCUMENT_ROOT men prøv at skrive hele stien ind til din mappe logos med og uden $DOCUMENT_ROOT
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 14:26 #12
stadig samme fejl

Fatal error: Maximum execution time of 30 seconds exceeded in /home/doomstone/www/admin/test.php on line 21
Avatar billede basicq Nybegynder
08. februar 2003 - 14:28 #13
prøv evt. at poste din kode har lige 15 min. så skal jeg ud.
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 14:41 #14
<?

if($picfile=="")
{
echo"Vælg en fil.";
}
else
{
require("upload.inc");
    $i = 0;
    $handle = opendir($dir);
    while ($file = readdir($handle))
    {
        if ($file != "." && $file != "..")
        {
            $i++;
            $split = split("\.", $file);
            echo ("$i: $split[0]".".$split[1]".".$split[2]<br>");
        }

        $fil = "$dir/$file";
        if($fil != "$dir/$picfile_name")
        {   
            copy($picfile, "$dir/$picfile_name");
           
            require("upload.inc");
            if($picfile_type != $filtype)
            {
                echo"Forkert fil type, du kan kun bruge gif filer.<br>";
                unlink("$dir/$picfile_name");
                echo "Tryk på tilbage i din browser.";
                return;
            }
           
            require("upload.inc");
            $handle = opendir($dir);
            $image = getimagesize("$dir/$picfile_name");
            if($image[0]>$maxwidth || $image[1]>$maxheight)
            {
                echo "Dit billedet er $image[0] pixel bredt og $image[1] pixel højt.<br>";
                echo "Billedet må max være $maxwidth pixel bredt og $maxheight pixel højt.<br>";
                echo "Husk dit billede max må fyle $maxfilesize bytes<br>";
                echo "Tryk på tilbage i din browser.";
                unlink("$dir/$picfile_name");
                return;
            }
           
            require("upload.inc");
            $file_size = filesize("$dir/$picfile_name");
            if ($file_size > $maxfilesize)
            {
                unlink("$dir/$picfile_name");
                echo"Filen fylder $file_size Bytes og er for stor.<br>";
                echo"Den må max fylde $maxfilesize Bytes!<br>";
                echo "Tryk på tilbage i din browser.";
                return;
            }

        }
    }
    unlink($picfile);
    closedir($handle);
}
?>

<form name="form" enctype="multipart/form-data" action="<?=$PHP_SELF;?>" method="post">
<input type="file" name="picfile">
<input type="submit" name="submit" value="upload fil -> "><br><br>
</form>
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 14:41 #15
<?
$maxwidth = 800; // pixel
$maxheight = 80; // pixel
$maxfilesize = 50000; // byte 3,5 kb
$filtype = "image/gif";
$dir = "$DOCUMENT_ROOT/logos/";
$picdir = "../logos"; // Til beboereadmin.php siden
$picdir_index = "logos/"; // Til index.php siden
?>
Avatar billede doomstone-dk- Nybegynder
08. februar 2003 - 14:42 #16
det er det hele
Avatar billede doomstone-dk- Nybegynder
09. februar 2003 - 04:03 #17
Hmm det lykkede mig at bixe mit eget script sammen!

if($_GET['mode'] == "upload"){
require("upload.inc");

$temp=$_FILES['picfile']['tmp_name'];
$name=$_FILES['picfile']['name'];

$explode = explode(".", $name);
if($explode[1] != "gif"){
$error = "your file is not a gif file<br>";   
}else{

$image = getimagesize($temp);
if($image[0]<=$maxwidth && $image[1]<=$maxheight){


$file_size = filesize($temp);
if($file_size > $maxfilesize){
$error = "Your logo's size are to large, max is".$maxfilesize." and your image is ".$file_size."<br>";
}else{

if(file_exists($dir.$_GET[clanid].".gif")){
unlink($dir.$_GET[clanid].".gif");
}
copy($temp, $dir.$name);
rename($dir.$name, $dir.$_GET[clanid].".gif");
$error = "Your new logo have been uploadet<br>";

}


}else{  $error = "Your file is to large, the max is ".$maxwidth."*".$maxheight." and your image is ".$image[0]."*".$image[1]; }
unlink($temp);   
}}
Avatar billede basicq Nybegynder
09. februar 2003 - 11:04 #18
Det er jo perfekt! sååå velbekomme..
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