Avatar billede mpj86 Nybegynder
08. juli 2003 - 14:57 Der er 31 kommentarer og
1 løsning

Har en fejl i min upload kode

Hej

Hvorfor skriver den hele tiden "ugyldig filtype" også selv om jeg har valgt en fil med typen .jpg og .JPG

min kode:
        $upfil = $_FILES['upfile']['name'];
        if (preg_match ("/(jpg)$/i", $upfil)) { $fil_type = ".jpg"; }
        elseif (preg_match ("/(JPG)$/i", $upfil)) { $fil_type = ".JPG"; }
        else { echo 'ugyldig filtype<br>'; exit; }
Avatar billede Slettet bruger
08. juli 2003 - 15:00 #1
prøv med
echo substr($_FILES['upfile']['name'],-3);
og se hvad du får!?
Avatar billede ohmish Nybegynder
08. juli 2003 - 15:04 #2
mpj86> der er ingen grund til at lave en linie til filer med store bogstaver i navnet. Det checkes i forvejen.
Avatar billede hmortensen Nybegynder
08. juli 2003 - 15:05 #3
$file_type = strtolower(substr($upfile,-3));
if (($file_type == "jpg") || ($file_type == "gif"))
{
Avatar billede ahv Nybegynder
08. juli 2003 - 15:16 #4
if (!eregi(".jpg$", $upfil)) {
Avatar billede ahv Nybegynder
08. juli 2003 - 15:17 #5
For at tilføje flere ->

if (!eregi(".jpg$|.gif$|.png$", $upfil)) {
Avatar billede ahv Nybegynder
08. juli 2003 - 15:18 #6
$upfil = $_FILES['upfile']['name'];
if (!eregi(".jpg$|.gif$|.png$", $upfil)) {
  echo 'ugyldig filtype<br>';
  exit;
}
Avatar billede ohmish Nybegynder
08. juli 2003 - 15:31 #7
ahv> hvad hvis nogen finder på at kalde filen for: .jpg.exe
Avatar billede ahv Nybegynder
08. juli 2003 - 15:32 #8
Den mener jeg den hapser.
Avatar billede ohmish Nybegynder
08. juli 2003 - 15:33 #9
hvordan? har du testet det? jeg ser det ikke nogen steder.
Avatar billede ahv Nybegynder
08. juli 2003 - 15:33 #10
Det gør den også, hvilket $ jo sørger for.
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:33 #11
jeg bliver nød til at lave det i to da jeg skal have hvad filtypen er i $fil_type. Altså hvis man har uploadet en fil ved navn billede.jpg så skal $fil_type være = .jpg
Avatar billede Slettet bruger
08. juli 2003 - 15:33 #12
Det hapser den pga. $ til sidst!
Avatar billede ahv Nybegynder
08. juli 2003 - 15:34 #13
ohmish, du kan jo selv teste efter ->

<?php
$upfil = "hej.jpg.exe";
if (!eregi(".jpg$|.gif$|.png$", $upfil)) {
  echo 'ugyldig filtype<br>';
  exit;
}
?>
Avatar billede ahv Nybegynder
08. juli 2003 - 15:38 #14
mpj86, hvorfor det?
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:38 #15
Hvis i har en nemmere måde så er hele koden her:

<?php
include('config.php');

if (isset($_FILES['upfile'])) {

$id = $_GET['id'];
$getvar = mysql_fetch_array(mysql_query("SELECT max(id) AS nyt_id FROM scooter_billeder")) or die (mysql_error());
$billede_id = ($getvar['nyt_id'])+1;

$dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";

for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {

    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
   
        if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
           
        $files = $_FILES['upfile']['name'][$i];
        $temparr = explode(".", $files);
        $temparr[count($temparr)-2] = $id."_".$billede_id;
        $files = implode(".", $temparr);
        $upfil = $_FILES['upfile']['name'];
        if (preg_match ("/(jpg)$/i", $upfil)) { $fil_type = ".jpg"; }
        elseif (preg_match ("/(JPG)$/i", $upfil)) { $fil_type = ".JPG"; }
        else { echo 'ugyldig filtype<br>'; exit; }
       
        move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $files . $fil_type);
        $billede_sti = 'http://www.mopedpower.dk/gallerisystem/billeder/'.$id.'_'.$billede_id.''.$fil_type;
        mysql_query("INSERT INTO scooter_billeder (scooter_id, URL) VALUES ('$id','$billede_sti')") or die (mysql_error());

        } else {

        echo 'Upload til serveren skete ikke!';

        }
        echo 'Uploadet!';
        }
    }
}

echo '
<form enctype="multipart/form-data" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<input name="upfile[]" type="file" size="50" class="input"><br>
<input name="upfile[]" type="file" size="50" class="input"><br>
<input type="submit" value="Upload" size="50" class="submit">
</form>
';
?>
Avatar billede ahv Nybegynder
08. juli 2003 - 15:41 #16
<?php
include('config.php');

if (isset($_FILES['upfile'])) {

$id = $_GET['id'];
$getvar = mysql_fetch_array(mysql_query("SELECT max(id) AS nyt_id FROM scooter_billeder")) or die (mysql_error());
$billede_id = ($getvar['nyt_id'])+1;

$dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";

for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {

    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
   
        if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
           
        $files = $_FILES['upfile']['name'][$i];
        $temparr = explode(".", $files);
        $temparr[count($temparr)-2] = $id."_".$billede_id;
        $files = implode(".", $temparr);
        if (!eregi(".jpg$|.gif$|.png$", $files)) {
            echo 'ugyldig filtype<br>';
            exit;
        } 
        move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $files);
        $billede_sti = 'http://www.mopedpower.dk/gallerisystem/billeder/$files';
        mysql_query("INSERT INTO scooter_billeder (scooter_id, URL) VALUES ('$id','$billede_sti')") or die (mysql_error());

        } else {

        echo 'Upload til serveren skete ikke!';

        }
        echo 'Uploadet!';
        }
    }
}

echo '
<form enctype="multipart/form-data" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<input name="upfile[]" type="file" size="50" class="input"><br>
<input name="upfile[]" type="file" size="50" class="input"><br>
<input type="submit" value="Upload" size="50" class="submit">
</form>
';
?>
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:46 #17
DAMN! det dur :)

Kan du ikke også tilføje i kode så den skriver dette hvis man uploader en fil på over 400 kb "Billederne om max fylde 400 kb pr. stk og et af de billeder du prøver på at uploade fylder 759 kb!" :)
Avatar billede ahv Nybegynder
08. juli 2003 - 15:48 #18
Læs selv om det på www.webcafe.dk , man har godt af selv at læse lidt :o)
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:48 #19
Avatar billede ahv Nybegynder
08. juli 2003 - 15:49 #20
Webcafe har en hel artikel om uplaod -> http://www.webcafe.dk/artikler/php/upload/

Fejlen, prøv med ->
$billede_sti = "http://www.mopedpower.dk/gallerisystem/billeder/".$files;
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:53 #21
Det dur...

Men før i hen ville den godt uploade flere filer på en gang men det vil den ikke mere hvorfor?
Avatar billede ahv Nybegynder
08. juli 2003 - 15:55 #22
Hvad mener du, hvis der er fejl i det ene billede, så vil den ikke uploade det andet eller?
Avatar billede mpj86 Nybegynder
08. juli 2003 - 15:59 #23
Hvis jeg vælger 2 filer som er .jpg til at uploade så bliver der kun uploadet det første billede men der bliver oprettet 2 (nye ids) i db som der skal men i begge i feltet URL er adressen den samme nemlig adressen til det første billede der bliver uploadet...
Avatar billede ahv Nybegynder
08. juli 2003 - 16:01 #24
Prøv ->

<?php
include('config.php');

if (isset($_FILES['upfile'])) {
    $id = $_GET['id'];
    $getvar = mysql_fetch_array(mysql_query("SELECT max(id) AS nyt_id FROM scooter_billeder")) or die (mysql_error());
    $billede_id = ($getvar['nyt_id'])+1;
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                $temparr = explode(".", $value);
                $temparr[count($temparr)-2] = $id."_".$billede_id;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.gif$|.png$", $files)) {
                    echo 'ugyldig filtype<br>';
                    exit;
                } 
                move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $files);
                $billede_sti = "http://www.mopedpower.dk/gallerisystem/billeder/".$files;
                mysql_query("INSERT INTO scooter_billeder (scooter_id, URL) VALUES ('$id','$billede_sti')") or die (mysql_error());
            } else {
                echo 'Upload til serveren skete ikke!';
            }
            echo 'Uploadet!';
        }
    }
}

echo '
<form enctype="multipart/form-data" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<input name="upfile[]" type="file" size="50" class="input"><br>
<input name="upfile[]" type="file" size="50" class="input"><br>
<input type="submit" value="Upload" size="50" class="submit">
</form>
';
?>
Avatar billede ahv Nybegynder
08. juli 2003 - 16:02 #25
Hov ->

<?php
include('config.php');

if (isset($_FILES['upfile'])) {
    $id = $_GET['id'];
    $getvar = mysql_fetch_array(mysql_query("SELECT max(id) AS nyt_id FROM scooter_billeder")) or die (mysql_error());
    $billede_id = ($getvar['nyt_id'])+1;
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    $i = 0;
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                $temparr = explode(".", $value);
                $temparr[count($temparr)-2] = $id."_".$billede_id;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.gif$|.png$", $files)) {
                    echo 'ugyldig filtype<br>';
                    exit;
                } 
                move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $files);
                $billede_sti = "http://www.mopedpower.dk/gallerisystem/billeder/".$files;
                mysql_query("INSERT INTO scooter_billeder (scooter_id, URL) VALUES ('$id','$billede_sti')") or die (mysql_error());
            } else {
                echo 'Upload til serveren skete ikke!';
            }
            echo 'Uploadet!';
        }
        $i++;
    }
}

echo '
<form enctype="multipart/form-data" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<input name="upfile[]" type="file" size="50" class="input"><br>
<input name="upfile[]" type="file" size="50" class="input"><br>
<input type="submit" value="Upload" size="50" class="submit">
</form>
';
?>
Avatar billede mpj86 Nybegynder
08. juli 2003 - 16:03 #26
den skriver: Upload til serveren skete ikke!Uploadet! men den uploader ikke nogle billeder...
Avatar billede mpj86 Nybegynder
08. juli 2003 - 16:04 #27
tester lige den nye.....
Avatar billede mpj86 Nybegynder
08. juli 2003 - 16:09 #28
Første gang man uploader, uploader den kun et billede anden gang man uploader, uploader den begge billeder så der er problemer med den første gang der bliver uploadet jeg tror fejlen ligger her:

    $getvar = mysql_fetch_array(mysql_query("SELECT max(id) AS nyt_id FROM scooter_billeder")) or die (mysql_error());
    $billede_id = ($getvar['nyt_id'])+1;

Anden gang man så har uploadet, uploader den begge billeder men i db hedder begge det samme i feltet URL...
Avatar billede ahv Nybegynder
08. juli 2003 - 16:12 #29
Prøv ->

$temparr[count($temparr)-2] = $id."_".$billede_id."_".$i;
Avatar billede mpj86 Nybegynder
08. juli 2003 - 16:17 #30
Nu virker det så kan jeg bare lave min kode lidt om så det bliver sådan $id_$scooter_id_$i

Hvad betyder $i?
Avatar billede ahv Nybegynder
08. juli 2003 - 16:21 #31
$i er bare den variabel der tæller på, så vi for de rigtige informtioner, den gør så også at de ikke for det samme navn, ved at sætte den bagved navnene. :o)
Avatar billede mpj86 Nybegynder
08. juli 2003 - 16:22 #32
ok takker :)
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