Antworten auf deine Fragen:
Neues Thema erstellen

Suche: Hilfe für erweiterters Image Upload

Jason-Design

Jason-Design

Hiho PSDler,

ich brauche Drigend Hilfe ich habe der Zeit nur einen einfach image upload script das sieht so aus...

PHP:
<?php
    
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);

if($dateityp[2] != 0)
   {

   if($_FILES['datei']['size'] <  1024000)
      {
          $endung = substr(strrchr($_FILES['datei']['name'], '.'), 1);
          $ts = time();
          $user_id = $_SESSION["user_id"];
          $file = $user_id.".".$ts.".".$endung;
        
      move_uploaded_file($_FILES['datei']['tmp_name'], "images_user/".$file);
      
      // Thumbnail erstellen //
      
          function mkthumb($img_src,     // Dateiname
                   $img_width  = "100",       // max. Größe in x-Richtung
                   $img_height = "100",       // max. Größe in y-Richtung
                   $folder_scr = "images_user",  // Ordner der normalen Bilder
                   $des_src    = "images_user/thumb")    // Ordner der Thumbs
                                      {
                                        // Größe und Typ ermitteln
                                        list($src_width, $src_height, $src_typ) = getimagesize($folder_scr."/".$img_src);
                                    
                                        // neue Größe bestimmen
                                        if($src_width >= $src_height)
                                        {
                                          $new_image_width = $img_width;
                                          $new_image_height = $src_height * $img_width / $src_width;
                                        }
                                        if($src_width < $src_height)
                                        {
                                          $new_image_height = $img_width;
                                          $new_image_width = $src_width * $img_height / $src_height;
                                        }
                                    
                                        if($src_typ == 1)     // GIF
                                        {
                                          $image = imagecreatefromgif($folder_scr."/".$img_src);
                                          $new_image = imagecreate($new_image_width, $new_image_height);
                                          imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
                                          imagegif($new_image, $des_src."/".$img_src, 100);
                                          imagedestroy($image);
                                          imagedestroy($new_image);
                                          return true;
                                        }
                                        elseif($src_typ == 2) // JPG
                                        {
                                          $image = imagecreatefromjpeg($folder_scr."/".$img_src);
                                          $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
                                          imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
                                          imagejpeg($new_image, $des_src."/".$img_src, 100);
                                          imagedestroy($image);
                                          imagedestroy($new_image);
                                          return true;
                                        }
                                        elseif($src_typ == 3) // PNG
                                        {
                                          $image = imagecreatefrompng($folder_scr."/".$img_src);
                                          $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
                                          imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
                                          imagepng($new_image, $des_src."/".$img_src);
                                          imagedestroy($image);
                                          imagedestroy($new_image);
                                          return true;
                                        }
                                        else
                                        {
                                          return false;
                                        }
                                      }
                                      $pfad_file = "images_user/thumb/".$file;
                                      if(!file_exists($pfad_file)) {
                                            mkthumb($file);
                                              }
      echo "<meta http-equiv=\"refresh\" content=\"0; URL=myimages.php\">";
      }

   else
      {
         echo "Das Bild darf nicht größer als 100 kb sein ";
      }

    }

else
    {
    echo "Bitte nur Bilder im Gif, jpg bzw. png Format hochladen";
    } ?>

jetzt will ich es soweit auf arbeiten das man bis zu 300 bilder gleichzeitig hochlädt sowie ein logo einfügt

Danke schon mal im voraus.
Jason Design
 

Jason-Design

Jason-Design

AW: Suche: Hilfe für erweiterters Image Upload

Naja es sollte eigentlich die frage sein wie kann ich das ganze umsetzen und hätte ihr vllt ein paar codeteile für mich

Sry habs vergessen dazu zuschreiben
 

fakerer

Aktives Mitglied

AW: Suche: Hilfe für erweiterters Image Upload

und wie kommen die 300 Bilder ins forumlar?

aber wie auch immer im Prinzip könntest du einfach eine foreach schleife mehmen um eine datei nach der andren hochzuladen.

aber ich würde bei so vielen bildern einfach einen ftp zugang nehmen
 

MyBad

localhorst

AW: Suche: Hilfe für erweiterters Image Upload

Mit reinem PHP ist es meines Wissens nicht möglich mehrere Bilder gleichzeitig auf einen Server zu laden. Da hilft auch eine Schleife nicht, da PHP ja nicht auf den lokalen Rechner zugreifen kann.

Du könntest höchstens eine Zip-File hochladen und diese anschließend auf dem Server entpacken. Batch-Uploads wirst du nur per FTP oder Java hinbekommen.
 

fakerer

Aktives Mitglied

AW: Suche: Hilfe für erweiterters Image Upload

mit zur gleichen zeit hast du schon recht, mit foreach ist das dann mehr oder weniger eins nach dem andren. Aber man könnte theoretisch die 300 fileuploads gleichgzeitig anstossen.

Wenn Sie wirklich parallell hochgeladen werden sollen könnte man das ganze mit ajax jedesmal abschicken wenn eine datei ausgewählt wurde.

ps ich glaube mit würde es auch gehen
 

MyBad

localhorst

AW: Suche: Hilfe für erweiterters Image Upload

mit zur gleichen zeit hast du schon recht, mit foreach ist das dann mehr oder weniger eins nach dem andren. Aber man könnte theoretisch die 300 fileuploads gleichgzeitig anstossen.

Wenn Sie wirklich parallell hochgeladen werden sollen könnte man das ganze mit ajax jedesmal abschicken wenn eine datei ausgewählt wurde.

ps ich glaube mit würde es auch gehen

Dann bräuchte man aber 300 Datei-Auswahl-Buttons und der User müsste auch alle davon benutzen. Das funktioniert so einfach nicht. Reines PHP reicht da nicht. Auch nicht in Verbindung mit AJAX.

Java, Flash, Zip-Files oder eben der gute alte FTP-Zugang sind hier die einzigen Möglichkeiten.
 
Zuletzt bearbeitet:

blastermaster

Noch nicht viel geschrieben

AW: Suche: Hilfe für erweiterters Image Upload

Vorschlag für HTML5 kompatible Browser
Um mehrere Dateien auf einmal hochladen zu können, muß im HTML Code das <input> Feld wie folgt aussehen
HTML:
<input name="userfiles[]" type="file" multiple="" />
- mit -multiple- können mehrere Dateien vom lokalen Speicherplatz gewählt werden
- durch die eckigen Klammern hinter dem Feldnamen wird ein Array erzeugt, das man z.B.mit foreach in PHP verarbeiten kann.
PHP:
//um sich den Inhalt des Arrays anzusehen
echo '<pre>';  
print_r($_FILES);  
echo '</pre>';

//Auslesen des Arrays
foreach($_FILES as $userfile){
    foreach($userfile['name'] as $userfilename){
        ....dein Code
    }
}
Um jetzt noch ein Logo hinzuzufügen, kannst du nach imagecopyresampled() z.B. mit imagettftext() einen Schriftzug hinzufügen.
 

Jason-Design

Jason-Design

AW: Suche: Hilfe für erweiterters Image Upload

Vorschlag für HTML5 kompatible Browser
Um mehrere Dateien auf einmal hochladen zu können, muß im HTML Code das <input> Feld wie folgt aussehen
HTML:
<input name="userfiles[]" type="file" multiple="" />
- mit -multiple- können mehrere Dateien vom lokalen Speicherplatz gewählt werden
- durch die eckigen Klammern hinter dem Feldnamen wird ein Array erzeugt, das man z.B.mit foreach in PHP verarbeiten kann.
PHP:
//um sich den Inhalt des Arrays anzusehen
echo '<pre>';  
print_r($_FILES);  
echo '</pre>';

//Auslesen des Arrays
foreach($_FILES as $userfile){
    foreach($userfile['name'] as $userfilename){
        ....dein Code
    }
}
Um jetzt noch ein Logo hinzuzufügen, kannst du nach imagecopyresampled() z.B. mit imagettftext() einen Schriftzug hinzufügen.

Danke dir werde es gleich mal ausprobieren.
 

besercer

Noch nicht viel geschrieben

AW: Suche: Hilfe für erweiterters Image Upload

Hallo,

ich habe ein ähnliches Problem und zwar möchte ich aus diesem Code ( der bei einem Bild super funktioniert) auf mehrere anwenden aber ich versteh das nicht mit der Foreach schleife. Muss ich aus den If ein for machen oder wie? Sorry ich bin noch ganz grün hinter den ohren was php angeht^^
PHP:
<?php
$dateityp = GetImageSize($_FILES['datei[]']['tmp_name[]']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei[]']['size'] <  102400)
      {
      move_uploaded_file($_FILES['datei[]']['tmp_name[]'], "upload/".$_FILES['datei[]']['name[]']);
      echo "Das Bild wurde Erfolgreich hochgeladen";	  
      }

   else
      {
         echo "Das Bild darf nicht größer als 100 kb sein ";
      }

    }

else
    {
    echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
    }
?>

Danke schönmal:)
 

blastermaster

Noch nicht viel geschrieben

AW: Suche: Hilfe für erweiterters Image Upload

lese die Kommentare und lasse dir den Arrayinhalt ausgeben
PHP:
<?php
$i = 0; //Zähler für Arrayinhalt

//mit diesem Code lässt sich der Inhalt des Array ausgeben
/*echo '<pre>';  
print_r($_FILES);  
echo '</pre>';*/

//das Array der Dateien wird durchlaufen. Dieses enthält folgende Infomationen
//$datei['name'] - orginal Dateiname
//$datei['type'] - Dateityp in Form z.B. image/gif
//$datei['tmp_name'] - temporärer Pfad/Name auf dem Server
//$datei['error'] - eventueller Errorcode, bei keinem Fehler ist der Wert 0
//$datei['size'] - Dateigröße in bytes
foreach($_FILES as $datei){ 
    //das Array $datei['name'] wird durchlaufen. Der Inhalt wäre z.B. folgender und beginnt immer mit 0
    //[0] => bild1.gif
    //[1] => bild2.jpg
    //[2] => bild4.png
    //[3] => datei.psd
    foreach($datei['name'] as $userfilename){

        $dateityp = getimagesize($datei['tmp_name'][$i]);
        //if($dateityp[2] != 0) so ist es möglich alle Daeitypen hochzuladen
        //besser wäre diese Variante - gif, jpg. png
        if($dateityp[2] == 1 || $dateityp[2] == 2 || $dateityp[2] == 3)
           {
        
           if($datei['size'][$i] < 102400)
              {
              move_uploaded_file($datei['tmp_name'][$i], "upload/".$userfilename);
              echo "Das Bild ".$userfilename." wurde Erfolgreich hochgeladen<br />";
              $i++;  //es wird um 1 erhöht und die nächste Datei abgearbeitet
              }
        
           else
              {
              echo "Das Bild ".$userfilename." darf nicht größer als 100 kb sein<br />";
              $i++; //es wird um 1 erhöht und die nächste Datei abgearbeitet
              continue;
              }
        
            }
        
        else
            {
            echo "Die Datei ".$userfilename." ist nicht Format im gif, jpg oder png<br />";
            $i++; //es wird um 1 erhöht und die nächste Datei abgearbeitet
            continue;
            }
    }
}
?>
 

Jason-Design

Jason-Design

AW: Suche: Hilfe für erweiterters Image Upload

Bei mir klappt alles wunderbar, naja fast das script geht schon mal nur das problem ist jetzt ich kann maximal 20 bilder mit einmal hochladen.

Kennt jemand von euch das problem und weiß auch wie man dieses beheben kann?

MFG Jason

Edit:

Ich habe schnell gegooglet und sie da gleich etwas gefunden...

editiere die php.ini
Code:
max_file_uploads = 200

dachte schön und gut probierste gleich mal aus passiert natürlich nixs, bei meiner weiter recherche fand ich dann dieses für die .htaccess

Code:
php_value upload_max_filesize 400M
php_value always_populate_raw_post_data 1
php_value post_max_size 400M
php_value memory_limit 999M
php_value max_execution_time 6000
php_value max_file_uploads 1000

Und sie da es funktioniert. Nicht blöde klotzen wegen den extremen Values nur ich brauche das so Hoch;)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.474
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben