Avatar billede mpj86 Nybegynder
09. juli 2003 - 12:41 Der er 30 kommentarer og
1 løsning

Skal have lavet noget på min upload kode

Hej

Jeg har denne kode:

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

if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_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] = $model_id."_".$id."_".$i;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.JPG$", $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 name="upfile[]" type="file" size="50" class="input"><br>
<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>
';
?>


Nogle der kan lave så dette $model_id."_".$id."_".$i (Altså $i starter fra 1 af og ikke som nu hvor den starter på 0)

Det næste i skal lave er hvis jeg har uploadet 2 billeder i dag og i morgen vil jeg så uploade 3 billeder så er problemet at $i starter forfra altså fra 0, der skal jeg så have jer til at lave så den enten henter det på billederne eller i db om hvad nr. det næste skal være.
Avatar billede mpj86 Nybegynder
09. juli 2003 - 12:42 #1
Sådan ser min table ud på scooter_billeder:

CREATE TABLE scooter_billeder (
  id int(11) NOT NULL auto_increment,
  scooter_id int(11) NOT NULL default '0',
  URL tinytext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Hvis i vælger at hente det fra db.....
Avatar billede exp Juniormester
09. juli 2003 - 12:44 #2
<?php
include('config.php');

if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_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 = 1;
    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] = $model_id."_".$id."_".$i;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.JPG$", $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 name="upfile[]" type="file" size="50" class="input"><br>
<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
09. juli 2003 - 12:44 #3
Dette $model_id."_".$id."_".$i giver filnavn og $model_og og id bliver hente ($_GET)

Så filnavne kommer til at se sådanud:

12_32_0
12_32_1
12_32_2
12_32_3
12_32_4
12_32_5......
Avatar billede exp Juniormester
09. juli 2003 - 12:48 #4
Del 2 kan du enten lave ved at skrive det sidst benyttede tal i en tekstfil, og når du så skal uploade igen, henter du det, lægger 1 til og sætter $i = dette tal.

Eller du kan gennemløbe filerne du allerede har uploadet, finde det højeste tal, lægge 1 hertil, og sætte $i = dette tal
Avatar billede mpj86 Nybegynder
09. juli 2003 - 12:57 #5
Når jeg vil uploade 2 billeder uploader den kun 1

Den skriver dette: Uploadet!Upload til serveren skete ikke!Uploadet!
--------------------------------------------------------------------
Nu må lige hjælpe mig med det hvor den skal finde ud af hvad det sidste hed af $i....

Du skal bare huske på at for hver scooter er $id ikke ens og jeg har også men forskelligt $model_id.

For det skal se sådan ud:

12_32_1
12_32_2
12_32_3

3_5_1
3_5_2
3_5_3

Det vil sige at den skal findes $i for hver scooter...
Avatar billede mpj86 Nybegynder
09. juli 2003 - 13:08 #6
Så man kunne vel lave sådan en table?

CREATE TABLE scooter_billede_nr (
id int(11) NOT NULL auto_increment,
model_id tinytext NOT NULL,
id tinytext NOT NULL,
billede_nr tinytext NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

Så det sidste billede der blev uploade skal den køre denne kode:

mysql_query("INSERT INTO scooter_billede_nr (model_id,id,billede_nr) VALUES ('$model_id','$id','$i')") or die (mysql_error());

Nogle der kan lave så den søger efter i scooter_billede_nr efter hvad $i er noget til? og så at model_id=$model_id , id=$id og billede_nr = f.eks 5 og så + 1

Hvis der ikke er noget i db så skal den bare starte ved 1
Avatar billede exp Juniormester
09. juli 2003 - 13:16 #7
du kan evt lave noget med explode eller split...

$arr = split("_", $filnavn);

foreach($arr as $a) {
  echo $a;
}
Avatar billede ahv Nybegynder
09. juli 2003 - 14:44 #8
Hvad blot med ->
    $i = 0;
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            $num = $i +1;
            if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                $temparr = explode(".", $value);
                $temparr[count($temparr)-2] = $model_id."_".$id."_".$num;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.JPG$", $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++;
    }
Avatar billede ahv Nybegynder
09. juli 2003 - 14:46 #9
Fejlen i exp forslag er at den siger i skal være en højere, men i skal altså starte ved 0 for at hente de rigtige billeder, derofr gik det også galt da du uploadede to.

Det jeg blot har lavet i mit svar er at lave en ny variabel, der er 1 højere end i.
Avatar billede mpj86 Nybegynder
09. juli 2003 - 14:48 #10
ahv: Ok nice kan du ikke også lave det andet for mig så er de 50 points dine :)
Avatar billede ahv Nybegynder
09. juli 2003 - 14:51 #11
Den er vel lidt problematisk? For hvis du nu selv prøver at uplaode fra nummer 1 og nummer 3 input file, så ville billederne blive noget ala ->

3_5_1
3_5_3

Dvs. at 2 står tom og 4 og 5 er også ledige, jeg har selv kringlet den på en måde i et script, men der kunne man samtidig se de uploadede billeder, altså hvis man så tog nummer 1 igen blev det overskrevet to man nummer to ville den så oploade en ny.
Avatar billede mpj86 Nybegynder
09. juli 2003 - 14:56 #12
Ja det er det der er problemer hvis jeg tager et billede ind i upload felt 2 og 5 så bliver billede:

1_1_2
1_1_5
Avatar billede ahv Nybegynder
09. juli 2003 - 15:14 #13
Jep, kender det udemærket ;o) Jeg skulle også lige finde på en rimlig måde at omgå problemet, som jeg har forklaret.
Avatar billede mpj86 Nybegynder
10. juli 2003 - 11:37 #14
Jeg ændre lige spm'et lidt har fundet ud af at jeg er lige gang med og den starter ved 1 eller ej...

Nu har jeg prøve og det er det bedste jeg lige kan lave:

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

if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_id'];
    $id = $_GET['id'];
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    $resultat = mysql_query("SELECT billede_nr FROM scooter_billede_nr WHERE model_id = '$model_id' AND scooter_id = '$id'") or die (mysql_error());
    $row = mysql_fetch_array($resultat);
    $number = mysql_num_rows($resultat);
   
    if($number == 1) {
    $i = $row['billede_nr']+1;
    } else {
        $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] = $model_id."_".$id."_".$i;
                $files = implode(".", $temparr);
                if (!eregi(".jpg$|.JPG$", $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!';
            }
           
            if($number == 1) {
                mysql_query("UPDATE scooter_billede_nr SET billede_nr = '$i' WHERE model_id = $model_id AND scooter_id = $id") or die (mysql_error());
            } else {
                mysql_query("INSERT INTO scooter_billede_nr (model_id,scooter_id,billede_nr) VALUES ('$model_id','$id','$i')") or die (mysql_error());
            }
            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 name="upfile[]" type="file" size="50" class="input"><br>
<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>
';
?>

Den virker 100% når jeg uploader et billede første gang anden gang jeg vil skriver den "Upload til serveren skete ikke!Uploadet!" Så kigger jeg i db og ser at den har update scooter_billede_nr til det nye tal men den har ikke oprettet noget i scooter_billeder og den har heller ikke uploadet noget billede.

De 50 points går til han der kan lave dette så det virker 100%
Avatar billede ahv Nybegynder
10. juli 2003 - 12:11 #15
Problemet komme rogså hvis ikke de to billeder har samme endelse, f.eks. gif og jpg, jeg lægger inde med en færdig løsning til dette, jeg har som sagt selv stået i denne position og fandt frem til en løsning.

men synes nu den er mere end 50 points værd ;o)
Avatar billede ahv Nybegynder
10. juli 2003 - 12:20 #16
Men tror ikke helt vi tænker det samme, du vil stadig ikke have den overskriver de gamle billeder?
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:02 #17
Nej den skal ikke overskrive billederne den skal bare lave billederne sådan:

3_5_0
3_5_1
3_5_2
3_5_3

Hvad siger du så til 120 points for at hjælpe har ikke flere :(
Avatar billede ahv Nybegynder
10. juli 2003 - 13:03 #18
Hvad så når man uploader igen?
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:05 #19
Jeg har scooter_billede_nr til at finde ud af hvor den skal starte igen altså næste gang man uploader skal den så hedde 3_5_4 osv....

if($number == 1) {
    $i = $row['billede_nr']+1;
    } else {
        $i = 0;
    }
Avatar billede ahv Nybegynder
10. juli 2003 - 13:07 #20
Hvad nu hvis man har uploadet 0, 2, 4? Må man genre upload mere end 5 billeder? ialt?
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:11 #21
Så skal den lave det om så det hedder:
0, 1, 2

Ja man må uploade lige så mange billeder man vil...

Table for scooter_billeder_nr:

CREATE TABLE scooter_billede_nr (
  id int(11) NOT NULL auto_increment,
  model_id tinytext NOT NULL,
  scooter_id tinytext NOT NULL,
  billede_nr tinytext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede ahv Nybegynder
10. juli 2003 - 13:28 #22
Prøv ->

CREATE TABLE scooter_billede_nr (
  id int(11) NOT NULL auto_increment,
  model_id tinytext NOT NULL,
  scooter_id tinytext NOT NULL,
  billede_nr tinytext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

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

if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_id'];
    $id = $_GET['id'];
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    $resultat = mysql_query("SELECT billede_nr FROM scooter_billede_nr WHERE model_id = '$model_id' AND scooter_id = '$id'") or die (mysql_error());
    $row = mysql_fetch_array($resultat);
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            if (!eregi(".jpg$", $value)) {
                echo 'Ugyldig filtype.<br>';
                $pic = 1;
            }
        }
    }
    if ($pic != 1) {
        $i = 0;
        foreach ($_FILES['upfile']['name'] as $name => $value) {
            if ($value) {
                $row['billede_nr']++;
                if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    $temparr = explode(".", $value);
                    $temparr[count($temparr)-2] = $model_id."_".$id."_".$row['billede_nr'];
                    $files = implode(".", $temparr);
                    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')");
                } else {
                    echo 'Upload til serveren skete ikke!';
                }
               
                if($row['billede_nr'] > 0) {
                    mysql_query("UPDATE scooter_billede_nr SET billede_nr = '$row[billede_nr]' WHERE model_id = $model_id AND scooter_id = $id");
                } else {
                    mysql_query("INSERT INTO scooter_billede_nr (model_id,scooter_id,billede_nr) VALUES ('$model_id','$id','$row[billede_nr]')");
                }
                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 name="upfile[]" type="file" size="50" class="input"><br>
<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
10. juli 2003 - 13:32 #23
Jeg har lige prøvet med et billede og en gang den uploader billedet og den får det rigtigt fil navn det står også rigtigt i scooter_billeder men der er ikke kommet noget ind i scooter_billede_nr...
Avatar billede ahv Nybegynder
10. juli 2003 - 13:35 #24
if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_id'];
    $id = $_GET['id'];
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    $resultat = mysql_query("SELECT billede_nr FROM scooter_billede_nr WHERE model_id = '$model_id' AND scooter_id = '$id'") or die (mysql_error());
    $row = mysql_fetch_array($resultat);
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            if (!eregi(".jpg$", $value)) {
                echo 'Ugyldig filtype.<br>';
                $pic = 1;
            }
        }
    }
    if ($pic != 1) {
        $i = 0;
        foreach ($_FILES['upfile']['name'] as $name => $value) {
            if ($value) {
                $row['billede_nr']++;
                if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    $temparr = explode(".", $value);
                    $temparr[count($temparr)-2] = $model_id."_".$id."_".$row['billede_nr'];
                    $files = implode(".", $temparr);
                    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')");   
                    if($row['billede_nr'] != 0) {
                        mysql_query("UPDATE scooter_billede_nr SET billede_nr = '$row[billede_nr]' WHERE model_id = $model_id AND scooter_id = $id");
                    } else {
                        mysql_query("INSERT INTO scooter_billede_nr (model_id,scooter_id,billede_nr) VALUES ('$model_id','$id','$row[billede_nr]')");
                    }
                    echo 'Uploadet!';
                } else {
                    echo 'Upload til serveren skete ikke!';
                }
            }
            $i++;
        }
    }
}
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:37 #25
nope der kommer ikke noget ind i scooter_billede_nr...
Avatar billede ahv Nybegynder
10. juli 2003 - 13:37 #26
Er scoorer_billede_nr tom lige nu?
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:39 #27
Ja når jeg uploade et billeder kommer der ikke noget ind i scooter_billede_nr altså den er tom...
Avatar billede ahv Nybegynder
10. juli 2003 - 13:41 #28
if (isset($_FILES['upfile'])) {
    $model_id = $_GET['model_id'];
    $id = $_GET['id'];
    $dist = $_SERVER['DOCUMENT_ROOT']."/gallerisystem/billeder/";
    $resultat = mysql_query("SELECT billede_nr FROM scooter_billede_nr WHERE model_id = '$model_id' AND scooter_id = '$id'") or die (mysql_error());
    $row = mysql_fetch_array($resultat);
    foreach ($_FILES['upfile']['name'] as $name => $value) {
        if ($value) {
            if (!eregi(".jpg$", $value)) {
                echo 'Ugyldig filtype.<br>';
                $pic = 1;
            }
        }
    }
    if ($pic != 1) {
        $i = 0;
        foreach ($_FILES['upfile']['name'] as $name => $value) {
            if ($value) {
                $row['billede_nr']++;
                if (is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    $temparr = explode(".", $value);
                    $temparr[count($temparr)-2] = $model_id."_".$id."_".$row['billede_nr'];
                    $files = implode(".", $temparr);
                    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')");   
                    if($row['billede_nr'] != 1) {
                        mysql_query("UPDATE scooter_billede_nr SET billede_nr = '$row[billede_nr]' WHERE model_id = $model_id AND scooter_id = $id");
                    } else {
                        mysql_query("INSERT INTO scooter_billede_nr (model_id,scooter_id,billede_nr) VALUES ('$model_id','$id','$row[billede_nr]')");
                    }
                    echo 'Uploadet!';
                } else {
                    echo 'Upload til serveren skete ikke!';
                }
            }
            $i++;
        }
    }
}
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:45 #29
FUCK hvor nice TAK!!!!!

if (!eregi(".jpg$", $value))

Kan man så ikke uploade filer med typen .JPG?
Avatar billede mpj86 Nybegynder
10. juli 2003 - 13:46 #30
btw. kan du ikke kigge på dette? :)

http://www.eksperten.dk/spm/374121
Avatar billede ahv Nybegynder
10. juli 2003 - 13:46 #31
Jow :o)
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