Avatar billede netspinner Nybegynder
20. december 2004 - 15:49 Der er 7 kommentarer og
1 løsning

Kun billede og max. størrelse

Hej,
flg. kode udgør mit egentlige upload-script, men jeg mangler lige en funktion til at tjekke størrelsen på billedet (max. 2MB!) og så skal flg. filtyper accepteres: jpg,jpeg,gif,png,bmp,ico... en der vil hjælpe lidt med det? :-)


------------- oO Kode Oo -------------
<?php
include ("fpconfig.php");
include ("includes/functions.inc.php");

if (!isset($_COOKIE['kage'])) {
$error = "Your are not a valid user. Please register first!";
include("error.php");
exit();
}
else {
if (isset($_COOKIE['kage'])) {
      if($_POST['upload']){
          if ($_POST['pic'] == 1) {
              $files = $_FILES['upfil']['name'];
              $dist = "/home/02/system/pics/";
              move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);
          }
          elseif (!$_POST['pic'] == 1) {
            $files = "/home/02/system/images/nopic.gif";
          }
          mysql_query("INSERT INTO news (title, text, name, file) values ('$_POST[title]', '$_POST[text]', '$_POST[name]', '$files')");
          header("Location: fpindex.php");
    }
}
?>
Avatar billede coderdk Praktikant
20. december 2004 - 17:06 #1
if ( preg_match( "/\.(jpe?g|jpe|gif|png|bmp|ico)$/i", $_FILES['upfil']['name'] )
{
  // Filnavn er ok
}

if ( filesize( $_FILES['upfil']['tmp_name'] ) <= ( 2 * 1024 * 1024 ) )
{
  // Størrelse er ok
}
Avatar billede coderdk Praktikant
20. december 2004 - 17:06 #2
Det kan du smide ind hvor du synes det passer ;)
Avatar billede netspinner Nybegynder
20. december 2004 - 18:30 #3
Takker, men fil-kontrollen virker ikke?
Avatar billede coderdk Praktikant
20. december 2004 - 18:40 #4
Filkontrollen? Størrelse?
Ellers prøv at lave den om til:

if ( filesize( $_FILES['upfil']['tmp_name'] ) <= 2000000 )
Avatar billede netspinner Nybegynder
20. december 2004 - 18:46 #5
Ja, det var vist ikke så præciserende... :)
Jeg kan slet ikke integrere dem i mit script :-/

Har du mulighed for at prøve at sætte det ind i upload-scriptet?
Avatar billede coderdk Praktikant
20. december 2004 - 18:52 #6
Sådan tror jeg:

<?php

  include( "fpconfig.php" );
  include( "includes/functions.inc.php" );

  if ( !isset( $_COOKIE['kage'] ) )
  {
    $error = "Your are not a valid user. Please register first!";
    include("error.php");
    exit();
  }
  else
  {
    if ( isset( $_COOKIE['kage'] ) )
    {
      if ( $_POST['upload'] )
      {
        if ( $_POST['pic'] == 1 )
        {
              $files = $_FILES['upfil']['name'];
              if ( !preg_match( "/\.(jpe?g|jpe|gif|png|bmp|ico)$/i", $files ) )
              {
                  die( "Kun jpeg, gif, png, bmp og ico er tilladt!" );
              }
              if ( filesize( $_FILES['upfil']['tmp_name'] ) > ( 2 * 1024 * 1024 ) )
              {
                  die( "Din fil er større end de tilladte 2 MB!" );
              }
              $dist = "/home/02/system/pics/";
              move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);
        }
        else
        {
            $files = "/home/02/system/images/nopic.gif";
        }
        mysql_query( "INSERT INTO news (title, text, name, file) values ('$_POST[title]', '$_POST[text]', '$_POST[name]', '$files')" );
        header( "Location: fpindex.php" );
      }
    }
  }

?>
Avatar billede netspinner Nybegynder
20. december 2004 - 19:01 #7
Jeg takker mange gange, det var lige hvad der skulle til - du har fået pointene! :-)
Avatar billede coderdk Praktikant
20. december 2004 - 19:19 #8
:) var så lidt!
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