Thread Verfasser: Catzenjaeger
Thread ID: 890
Thread Info
Es gibt 9 Beiträge zu diesem Thema, und es wurde 2326 Mal angesehen.
 Thema drucken
Mehr als ein Bild uploaden
Catzenjaeger
Ich biete momentan in einem Formular die Möglichkeit das der User ein Bild (was dann als Cover genutzt wird) hochzuladen an.

Wie könnte man das aufmotzen das man mehrere Bilder hochladen kann?


quasi das hier so erweitern das man nicht nur eins sondern z.B. 5 Bilder uploaden kann:

Code 

      //IMAGE UPLOAD
      echo "<td width='80' class='tbl' valign='top'>".$locale['figure_136']."</td>\n<td class='tbl' valign='top'>\n";
      echo "<input type='file' name='figure_image' class='textbox' style='width:250px;' /><br />\n";
      echo sprintf($locale['figure_137'], parsebytesize($asettings['figure_photo_max_b']))."\n";
      echo "</td>\n</tr>\n<tr>\n";



Am einfachsten wohl 5 mal den gleichen code oder? Oder gibts was besseres so wie im Forum wo das ja geht ... aber ich steige bei dem Code nicht durch dort weil das für attachments ist ... ich brauchs ja nur für für Bilder. Amliebsten gleich mit erstlelen von Thumbnails .

Danke für eure Hilfe
 
Rolly8-HL
Schau Dir die Gallery an da wird das so gemacht über ftp_upload.

Sonst wie es im Forum gemacht wird.
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?
 
Catzenjaeger
LOL Rolly das ist viel zu heavy habs mir angeschaut .. ich wüsste nicht wie ich anfangen soll.

Mit functions kenne ich mich nicht aus. Da ist viel zu viel zusammenhängend .. da das ich nicht weis wie und was ich ändern müsste

Das bild wird so übertragen:

Code 

      //IMAGE UPLOAD
      echo "<td width='80' class='tbl' valign='top'>".$locale['figure_136']."</td>\n<td class='tbl' valign='top'>\n";
      echo "<input type='file' name='figure_image' class='textbox' style='width:250px;' /><br />\n";
      echo sprintf($locale['figure_137'], parsebytesize($asettings['figure_photo_max_b']))."\n";
      echo "</td>\n</tr>\n<tr>\n";



so kommt das dann in submissions an wo ich das dann freigebe.

Aufgerufen wird esd ann wieder in der figure.php

Code 

echo "<center><a href='".($data['figure_image'] ? IMAGES_FIGURE.$data['figure_image'] : INFUSIONS.$inf_folder."/images/default.png")."'  height='100%' width='100%' alt='".$data['figure_title']."'><img src='".($data['figure_image'] ? IMAGES_FIGURE.$data['figure_image'] : INFUSIONS.$inf_folder."/images/default.png")."'  height='100%' width='500px' alt='".$data['figure_title']."' /></center>";



dort habe ich zumindest hinbekommen das das Bild klickbar ist (war vorher nicht weil nur ein Thumb von 128x128 gespeichert wurde. Das habe ich hochgeschraubt so das ein HD Bild gespeichert wird. Das ist aber sehr trafficlastig und zudem ja nur ein Bild.

schade dann muss ich es wohl so lassen - das ist zu hoch für mich
 
Wemi
Vielleicht hilft dir das ja weiter? http://staticfloat.com/php-programmie...5-und-php/
"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
 
Catzenjaeger
nicht so richtig. Von neu aufbauen trau ich mir nicht zu und dazu sind meine Fähigkeiten einfach nicht vorhanden.

Ich habe ja mal so gesucht wie es in der Ver 9 zB im Forum gemacht wird aber das scheint sehr kompliziert. In vers 7 ist das auch völlig anders.

Ich habe ja version 9 und denke ich sollte das von dort so machen. Aber leider viel zu kompliziert. Ich weiss gar nicht wie ich anfangen sollte
Bearbeitet von Catzenjaeger am 20.05.2016 um 10:34
 
Wemi
Ob V7 oder V9 letzendlich läuft das meiste von V7 unter V9. Umgekehrt nicht unbedingt.

Der Multiupload aus dem Forum von V7 läuft auch auf V9. Und ist doch für Laien etwas verständlicher, da die neuen Features für Formulare da nicht drin sind.

Der Link von mir wäre auch eine Lösung, die du einbauen kannst.

Egal welche Lösung dir vorschwebt:
Du musst auf jeden Fall dann für die Fotos eine eigene Datenbanktabelle haben (hätte ich jedenfalls gemacht, man könnte also unendlich viele Bilder als Cover hochladen) oder deine Tabelle um entsprechend viele Felder erweitern (ist viel weniger flexibel, will man mehr, muss man erst wieder neue Datenbankfelder erstellen)
"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
 
Catzenjaeger
hmnn das klingt kompliziert aber logisch:)

dann müsste ich wahrscheinlich alles noch mal von Grund aus neu machen... ODER?
Momentan speichere ich alle Daten in der Tabelle DB_FIGURES

die sieht so aus:

Zitat: $inf_newtable[2] = DB_FIGURE." (
figure_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
figure_title varchar(200) NOT NULL DEFAULT '',
figure_brand varchar(200) NOT NULL DEFAULT '',
figure_series varchar(200) NOT NULL DEFAULT '',
figure_variant varchar(200) NOT NULL DEFAULT '',
figure_scale varchar(200) NOT NULL DEFAULT '',
figure_weight varchar(200) NOT NULL DEFAULT '',
figure_height varchar(200) NOT NULL DEFAULT '',
figure_width varchar(200) NOT NULL DEFAULT '',
figure_depth varchar(200) NOT NULL DEFAULT '',
figure_material varchar(200) NOT NULL DEFAULT '',
figure_poa varchar(200) NOT NULL DEFAULT '',
figure_packaging varchar(200) NOT NULL DEFAULT '',
figure_retailprice varchar(200) NOT NULL DEFAULT '',
figure_usedprice varchar(200) NOT NULL DEFAULT '',
figure_limitation varchar(200) NOT NULL DEFAULT '',
figure_editionsize varchar(200) NOT NULL DEFAULT '',
figure_artists varchar(200) NOT NULL DEFAULT '',
figure_cat mediumint(8) unsigned NOT NULL DEFAULT '0',
figure_accessories text NOT NULL,
figure_description text NOT NULL,
figure_url varchar(200) NOT NULL DEFAULT '',
figure_file varchar(100) NOT NULL DEFAULT '',
figure_image varchar(100) NOT NULL DEFAULT '',
figure_name mediumint(8) unsigned NOT NULL DEFAULT '1',
figure_filesize varchar(20) NOT NULL DEFAULT '',
figure_datestamp int(10) unsigned NOT NULL DEFAULT '0',
figure_author varchar(200) NOT NULL DEFAULT '',
figure_country varchar(200) NOT NULL DEFAULT '',
figure_manufacturer varchar(200) NOT NULL DEFAULT '',
figure_pubdate varchar(200) NOT NULL DEFAULT '',
figure_clickcount int(10) unsigned NOT NULL DEFAULT '0',
figure_count int(10) unsigned NOT NULL DEFAULT '0',
figure_allow_comments tinyint(1) unsigned NOT NULL DEFAULT '1',
figure_allow_ratings tinyint(1) unsigned NOT NULL DEFAULT '1',
KEY figure_datestamp (figure_datestamp),
KEY figure_count (figure_count),
PRIMARY KEY (figure_id)
) ENGINE=MyISAM;";
$inf_droptable[2] = DB_FIGURE;


Die Kategorien, Manufacturer, Brands, ...... usw. habe ich in anderen Tabellen untergebracht. Hier mal ein Beispiel für Manufacturer. Die anderen (BRAND, SCALE usw.) sind immer Analog dazu aufgebaut also gleiche Struktur.

Zitat: $inf_newtable[6] = DB_FIGURE_MANUFACTURERS." (
figure_manufacturer_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
figure_manufacturer_name varchar(100) NOT NULL DEFAULT '',
figure_manufacturer_description text NOT NULL,
figure_manufacturer_sorting varchar(50) NOT NULL DEFAULT '',
figure_manufacturer_access tinyint(3) unsigned NOT NULL DEFAULT '0',
figure_manufacturer_parent mediumint(8) unsigned NOT NULL DEFAULT '0',
figure_manufacturer_items int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (figure_manufacturer_id)
) ENGINE=MyISAM;";
$inf_droptable[6] = DB_FIGURE_MANUFACTURERS;


wie müsste ich das den umbauen damit das geht? Jetzt könnte ich eigentlich auch in der DB_FIGURE einfach folgendes machen

figure_image varchar(100) NOT NULL DEFAULT ''
figure_image_1 varchar(100) NOT NULL DEFAULT ''
figure_image_2 varchar(100) NOT NULL DEFAULT '' und so weiter

das würde ich sicher hinbekommen. Aber würde das überhaupt im Submit Formular gehen? Also wären dann dort mehrere DURCHSUCHEN Buttons wo man jeweils ein Bild ablegen kann.

Deine Variante mit den Bildern auslagern klinkt vernünftig ... aber ich weiss nicht wie die Struktur dann sein müsste bzw ob ich dann nicht alles umsonst war was ich bisher in wochenlanger Arbeit gemacht habe.
 
Wemi
In meinem Link ist das ganze gut beschrieben.

Es wird also nur ein Button angezeigt, in diesem kann man dann mehrere Dateien hochladen (vorausgesetzt man hat einen HTML5 fähigen Browser)

Du musst nicht alles neu machen. Nur die entsprechenden Stellen ändern.

Für die Fotos benötigst du natürlich

id als auto_increment, damit du eine eindeutige Id hast.
die Figuren Id, damit du die Fotos zuordnen kannst.
Dann musst du natürlich auch das gleiche abspeichern, wie in figure_image, damit dein Script das Foto auch finden kann.

Ach, ich weiss jetzt nicht genau, ob bei der V9 das Doctype schon auf HTML5 umgestellt ist, wenn nicht dann muss dieses natürlich auch noch geändert werden. (Sollte zwar schon wegen Bootstrap und Font-Awesome (diese würden ohne HTML5 Doctype auch nicht funktionieren))
"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
 
Catzenjaeger
WÄRE DAS SO OK?
Zitat: 
$inf_newtable[15] = DB_FIGURE_IMAGES." (
figure_images_image_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
figure_images_figure_id varchar(100) NOT NULL DEFAULT '',
figure_images_image varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (figure_images_image_id)
) ENGINE=MyISAM;";
$inf_droptable[15] = DB_FIGURE_IMAGES;

Bearbeitet von Catzenjaeger am 20.05.2016 um 23:21
 
Springe ins Forum: