Thread Verfasser: Rolly8-HL
Thread ID: 1054
Thread Info
Es gibt 23 Beiträge zu diesem Thema, und es wurde 10958 Mal angesehen.
 Thema drucken
Mehrfach Bilder laden
Rolly8-HL
Hallo, möchte gerne nicht nur ein Bild nach einander laden sondern eine Auswahl gleichzeitig.

opentable("Bilder laden");
echo "<form name='addcat' method='post' action='' enctype='multipart/form-data'>\n";
//      echo "<input type='file' name='news_image' class='textbox' style='float: left;' />\n";
echo "<input type='file' name='news_image[]' class='textbox' style='float: left;'  multiple />\n";
echo "&nbsp;<input type='submit' name='save' value='Speichern' style='float: left;'  class='button' />\n";
echo "</form>\n";
closetable();

Wenn ich das jetzt so benutze bekomme ich diesen Fehler.

Zitat

Warning: strlen() expects parameter 1 to be string, array given in P:\xampp\htdocs\maincore.php on line 59

Nutze ich nur name='news_image' habe ich keine Probleme.

Was mache ich falsch? was für ein Wert wird erwartet? wie bekomme ich diesen da rein?
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Moin, wie wird das ganze verarbeitet?
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Bei der mehrfach Verarbeitung bin ich noch nicht angekommen, die einfache wie vorher ist diese, mit der klappt es wunderbar.

if (isset($_POST['save'])) {
      require_once INCLUDES."photo_functions_include.php";
      $error="";
      $photo_file = ""; $photo_thumb1 = ""; $photo_thumb2 = "";
      if (!empty($_FILES['news_image']['name'])) {
         if (is_uploaded_file($_FILES['news_image']['tmp_name'])) {
            $photo_types = array(".gif",".jpg",".jpeg",".png");
            $photo_pic = $_FILES['news_image'];
            $photo_name = stripfilename(str_replace(" ", "_", strtolower(substr($photo_pic['name'], 0, strrpos($photo_pic['name'], ".")))));
            $photo_ext = strtolower(strrchr($photo_pic['name'],"."));
            $photo_dest = ARTICLE_A;
            if (!preg_match("/^[-0-9A-Z_\.\[\]]+$/i", $photo_name)) {
               $error = 1;
            } elseif ($photo_pic['size'] > $settings2['articles_photo_max_b']){
               $error = 2;
            } elseif (!in_array($photo_ext, $photo_types)) {
               $error = 3;
            } else {
               $photo_file = image_exists($photo_dest, $userdata['user_id']."_nbac_".time().$photo_ext);
               move_uploaded_file($photo_pic['tmp_name'], $photo_dest.$photo_file);
               chmod($photo_dest.$photo_file, 0666);
               $imagefile = @getimagesize($photo_dest.$photo_file);
               if ($imagefile[0] > '9999' || $imagefile[1] > '9999') {
                  $error = 4;
                  unlink($photo_dest.$photo_file);
               } else {
            $photo_cache = stripfilename(str_replace(" ", "_", strtolower(substr($photo_file, 0, strrpos($photo_file, ".")))));
               $photo_file2 = image_exists($photo_dest, $photo_cache."_1".$photo_ext);
      $imagefile[0] > $settings2['art_cat_photo_max_w'] ?   $sett_photo_max_w = $settings2['art_cat_photo_max_w'] :   $sett_photo_max_w = $imagefile[0];
      $imagefile[1] > $settings2['art_cat_photo_max_h'] ?   $sett_photo_max_h = $settings2['art_cat_photo_max_h'] :   $sett_photo_max_h = $imagefile[1];
         createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_file2, $sett_photo_max_w, $sett_photo_max_h);
         $photo_thumb2 = image_exists($photo_dest, $photo_cache."_t1".$photo_ext);
      $imagefile[0] > $settings2['art_cat_photo_w'] ?   $sett_photo_w = $settings2['art_cat_photo_w'] :   $sett_photo_w = $imagefile[0];
      $imagefile[1] > $settings2['art_cat_photo_h'] ?   $sett_photo_h = $settings2['art_cat_photo_h'] :   $sett_photo_h = $imagefile[1];
         createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_thumb2, $sett_photo_w, $sett_photo_h);
                  $photo_thumb1 = image_exists($photo_dest, $photo_cache."_t2".$photo_ext);
      $imagefile[0] > $settings2['art_cat_thumb_w'] ?   $sett_thumb_w = $settings2['art_cat_thumb_w'] :   $sett_thumb_w = $imagefile[0];
      $imagefile[1] > $settings2['art_cat_thumb_h'] ?   $sett_thumb_h = $settings2['art_cat_thumb_h'] :   $sett_thumb_h = $imagefile[1];
         createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_thumb1, $sett_thumb_w, $sett_thumb_h);
         unlink($photo_dest.$photo_file);
                  
               }}}}
        //Photo Upload end
}

Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Warum arbeitest du nicht mit der fertigen Funktion in der infusions_include.php?
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Weil es damit auch nicht geht, zeigt mir den selben Fehler an, habe es mit downloads.php versucht.
Was ich da habe ist aus der photos.php und hat spezielle Erweiterungen, ist sonst fast das selbe.

Habe an einer anderen Stelle das hier und es ergibt kein Fehler dieser Art.

<input type='checkbox' name='check_mark[]' value='".$nba_imag."' />

Kann das nur nicht dafür richtig umsetzen.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Naja jedenfalls ist der Fehler nicht nachvollziehbar
.

Was steht in Zeile 39 in der maincore?
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Bei mir ist es die Zeile 59 und da steht.

if(isset($each['name']) && strlen($each['tmp_name'])) {


Zusammengefügt am 24. August 2016 um 20:46:44:
Nachtrag:

Ich würde mir diese ganze Mühe nicht machen wenn ich wüste wie ich das zum laden übergeben könnte.
http://nobody.rolly8-hl.de/infusions/...loader.php
Bearbeitet von Rolly8-HL am 24. August 2016 19:11:03
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Also die Fehlermeldung liegt an der Mime Types überprüfen in der Maincore.php .. diese kann keine Arrays verarbeiten (sollte man fixen), dann sollte die Fehlermeldung Geschichte sein ^^

Was ist das unter dem von dir geposteten Link?
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL

Zitat

diese kann keine Arrays verarbeiten (sollte man fixen), dann sollte die Fehlermeldung Geschichte sein


Wie kann man das machen?

Zitat

Was ist das unter dem von dir geposteten Link?

Ist ein Test von mir auf einer Testseite, ist von http://www.dropzonejs.com wollte es gerne verwenden weil man dort Bilder zufügen kann auch über Drop Down konnte aber das noch nicht umsetzen das das was als Vorschau temporär geladen wird auch in ein Verzeichnis zu übergeben.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Ich könnte mir sowas vorstellen:

// Checking file types of the uploaded file with known mime types list to prevent uploading unwanted files
if(isset($_FILES) && count($_FILES)) {
   require_once BASEDIR."includes/mimetypes_include.php";
   foreach ($_FILES AS $checkItem) {
      if (is_array($checkItem) && count($checkItem)) {
         foreach ($checkItem AS $checkItem2) {
            checkMimeTypes($checkItem2);
         }
      } else {
         checkMimeTypes($checkItem);
      }
   }
}

function checkMimeTypes($check) {
   $mime_types = mimeTypes();
   if (isset($check['name']) && strlen($check['tmp_name'])) {
      $file_info = pathinfo($check['name']);
      $extension = $file_info['extension'];
      if (array_key_exists($extension, $mime_types)) {
         if ($mime_types[$extension] != $check['type']) {
            die('Prevented an unwanted file upload attempt!');
         }
      } /*else { //Let's disable this for now
         //almost impossible with provided array, but we throw an error anyways
         die('Unknown file type');
      }*/
      unset($file_info, $extension);
   }
   unset($mime_types);
}

Ist allerdings ungetestet und ohne Garantie, daher bitte unbdingt ein Backup der maincore.php erstellen.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Habe es getestet, damit wird zwar der Fehler nicht mehr angezeigt aber ein Wert wird auch nicht übergeben, bekomme da nur "Array" übergeben.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Du musst natürlich deine Verarbeitung auch umbauen .. die muss ein Array schon verarbeiten können.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Ja aber wie?
Bekomme nicht ein mal einen einzelnen Wert übergeben.

Damit bekomme ich den Namen der Datei angezeigt.


echo "Anzeige 1 - ".($_FILES['news_image']['name']);
echo "<input type='file' name='news_image'  class='textbox' style='float: left;'  multiple  />\n";


Damit nur eine "Anzeige 1 - Array"

echo "Anzeige 1 - ".($_FILES['news_image']['name']);
echo "<input type='file' name='news_image[]'  class='textbox' style='float: left;'  multiple  />\n";


Und das nur als einzelne Auswahl.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Versuche es mal so - ist aber ungetestet!! Die Code-Kommentare hab ich mir für die Übersicht eingebaut ;) Und ein wenig Hilfe aus der v9 geholt *fg*

// Check if form is posted
if (isset($_POST['save'])) {
   require_once INCLUDES."photo_functions_include.php";
   
   // Standard Variables
   $error=""; $photo_file = ""; $photo_thumb1 = ""; $photo_thumb2 = "";
   $photo_types = array(".gif",".jpg",".jpeg",".png"); $photo_dest = ARTICLE_A;
   
   
   // Check if there is sth uploaded and as an Array
    if (!empty($_FILES['news_image']['name']) && is_uploaded_file($_FILES['news_image']['tmp_name'][0])) {
      for ($i = 0; $i <= count($_FILES['news_image']) - 1; $i++) {
         
         // Name, Image Type, etc
            $photo_pic = $_FILES['news_image'];
            $photo_name = stripfilename(str_replace(" ", "_", strtolower(substr($photo_pic['name'][$i], 0, strrpos($photo_pic['name'][$i], ".")))));
            $photo_ext = strtolower(strrchr($photo_pic['name'][$i],"."));

         // Check Name
            if (!preg_match("/^[-0-9A-Z_\.\[\]]+$/i", $photo_name)) {
               $error = 1;
            
         // Check Filesize
            } elseif ($photo_pic['size'][$i] > $settings2['articles_photo_max_b']){
               $error = 2;
            
         // Check Filetype
            } elseif (!in_array($photo_ext, $photo_types)) {
               $error = 3;
            
         // Handle upload
            } else {
            
            // Move File
                $photo_file = image_exists($photo_dest, $userdata['user_id']."_nbac_".time().$photo_ext);
                move_uploaded_file($photo_pic['tmp_name'][$i], $photo_dest.$photo_file);
                chmod($photo_dest.$photo_file, 0666);
            
             // Check Filesize
                $imagefile = @getimagesize($photo_dest.$photo_file);
                if ($imagefile[0] > '9999' || $imagefile[1] > '9999') {
               $error = 4;
               unlink($photo_dest.$photo_file);
             
            // Create Thumbs
                } else {
               $photo_cache = stripfilename(str_replace(" ", "_", strtolower(substr($photo_file, 0, strrpos($photo_file, ".")))));
               
               $photo_file2 = image_exists($photo_dest, $photo_cache."_1".$photo_ext);
                $imagefile[0] > $settings2['art_cat_photo_max_w'] ?   $sett_photo_max_w = $settings2['art_cat_photo_max_w'] :   $sett_photo_max_w = $imagefile[0];
                $imagefile[1] > $settings2['art_cat_photo_max_h'] ?   $sett_photo_max_h = $settings2['art_cat_photo_max_h'] :   $sett_photo_max_h = $imagefile[1];
               createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_file2, $sett_photo_max_w, $sett_photo_max_h);
      
               $photo_thumb2 = image_exists($photo_dest, $photo_cache."_t1".$photo_ext);
               $imagefile[0] > $settings2['art_cat_photo_w'] ?   $sett_photo_w = $settings2['art_cat_photo_w'] :   $sett_photo_w = $imagefile[0];
               $imagefile[1] > $settings2['art_cat_photo_h'] ?   $sett_photo_h = $settings2['art_cat_photo_h'] :   $sett_photo_h = $imagefile[1];
               createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_thumb2, $sett_photo_w, $sett_photo_h);
      
               $photo_thumb1 = image_exists($photo_dest, $photo_cache."_t2".$photo_ext);
               $imagefile[0] > $settings2['art_cat_thumb_w'] ?   $sett_thumb_w = $settings2['art_cat_thumb_w'] :   $sett_thumb_w = $imagefile[0];
               $imagefile[1] > $settings2['art_cat_thumb_h'] ?   $sett_thumb_h = $settings2['art_cat_thumb_h'] :   $sett_thumb_h = $imagefile[1];
               createthumbnail($imagefile[2], $photo_dest.$photo_file, $photo_dest.$photo_thumb1, $sett_thumb_w, $sett_thumb_h);
      
               unlink($photo_dest.$photo_file);
            }
         }
      }
   }
}

Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Jepp, funktionieren tut es schon mal, werden angelegt, habe jetzt aber ein neues Problem.

Ich benutze den datestamp zur genauen Identifizierung, habe jetzt aber alle den selben mit dem Zusatz _1, _2, _3 .....

Kann man da nicht noch eine Zeitverzögerung von etwa 1 sec. mit einbauen?
So war es bis jetzt.

Zitat

2_nbac_1471945495_1.jpg
2_nbac_1471945495_t1.jpg
2_nbac_1471945495_t2.jpg
2_ = User id
ac_ = Artikel Cat
_1471945495_ = datestamp
_1 = max 100x100
_t1 = max 50x50
_t2 = max 25x25


Jetzt bekomme ich

Zitat

2_nbac_1471945495_1.jpg
2_nbac_1471945495_t1.jpg
2_nbac_1471945495_t2.jpg

2_nbac_1471945495_1_1.jpg
2_nbac_1471945495_t1_1.jpg
2_nbac_1471945495_t2_1.jpg

2_nbac_1471945495_1_2.jpg
2_nbac_1471945495_t1_2.jpg
2_nbac_1471945495_t2_2.jpg

Die lassen sich jetzt natürlich nicht mehr richtig auslesen für meine Zwecke.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
http://php.net/manual/de/function.sle....sleep.php mit einer Sekunde sollte es reichen.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Jeep, auch das hat geklappt, eine letzte Frage, es werden nur 5 geladen wenn ich 10 ausgewählt habe kommen nur 5 gleichzeitig an, ist da noch wo eine Begrenzung auf 5 Dateien drin?
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Lass dir mal mit echo count($_FILES['news_image']); ausgeben, wieviele übergeben werden. Aber ansich ist keine Begrenzung enthalten.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Rolly8-HL
Zeigt mir nur 5 an.
Habe mal Datei auswählen = 23 Dateien genommen erhalte jetzt 3 x diesen Fehler angezeigt.

Zitat

Warning: Maximum number of allowable file uploads has been exceeded in Unknown on line 0

Von der V9 weiß ich das die eine Begrenzung auf 20 Dateien haben.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Bist du dir ganz sicher? Kontrolliere doch lieber nochmal die PHP Einstellungen.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: