Datei Upload Wunschdenken - Skript?
Moses
- php
0 eddi0 FraFu0 AllesMeins
Hallo,
ich weiß es gibt zum Thema Datei-Upload unendlich viele Eitrnäge hier im Forum und eventl wurde meine Frage schonmal beantwortet, aber konnt auf die Schnelle nichts finden (habe allerdings einiges gelernt...)
Wie dem auch sei Lange Rede kurzer Sinn:
Vorab arbeite mit PHP und MySql.
Habe ein Webprojekt, daß viele Bilder enthält. Diese Bilder gibt es jeweils in 4 verschiedenen Auflösungen (vom ganz kleinen Thumbnail bis zur hichauflösenden Version und Druckqualität - und ja, es ist in diesem Fall wichtig daß diese Bilder nicht "automatisch runtergerechnet werden, sodnern die VErsionen vorher festgelegt werden...). Die verschiedenen AUflösungen liegen in verschiedenen Ordnern (auflösung1 / auflösung2/ etc.) und zwar sowohl auf dem lokalen wie auch auf dem remote System.
Die Bilder sind jeweils exakt gleich benannt.
Gibt es eine Möglichkeit (Skript) das mir ernmöglicht wenn ich ein neues Bild (die verschiedenen Auflösungen sind entsprechend erstellt) auf meinen Server laden will, daß ich nicht jedes Version des Bildes einzeln hochladen muß sondern es genügt zu sagen "lade bild1.jpg" und automatisch auflösung1/bild1.jpg - auflösung2/bild1.jpg etc. in die entsprechenden Remote Ordner geladen werden.
Oder ist so was nur Wunschdenken?
Hoffe ich habe mich verständlich ausgedrückt!
Grüße,
Moses
Hallo,
sieh Dir bitte das Manual für Grafikfunktionen der GD-Lib und dann zu Simplified Image Resizing with PHP an. Eine Suchenmaschienenrecherche könnte durchaus noch weitere Verweise zutage fördern...
Gruß aus Berlin!
eddi
Hi Eddi,
danke für die Llnks.
Aber wie gesagt geht es mir nicht darum ein Bild per PHP runterzurechnen. Sondern verschiedene Versionen eines Bildes upzuloaden.
Die Möglichkeit des automatischen runterrechnens ist mir bekannt (und wird auch benutzt) nur in diesem besonderen Fall kann und darf ich nicht darauf zurückgreifen (und ehrlich gesagt bin ich mit den Ergebnissen des automatischen runterrechnensn nicht immer zufrieden, aber das nur nebenbei).
Nachdem mein Auftraggeber natürlich seine Updates so einfach wie möglich halten will, hatte ich gehofft, es gäbe die Möglichkeit z.B. vier gleichlautenden Dateien aus vier verschiedenen Ordner auf meinem lokalen system automatisch in vier verschiedene Ordner des remotes systems zu laden, in dem ich nur einmal den Dateinamen angebe...
Grüße,
Moses
Hallo,
Aber wie gesagt geht es mir nicht darum ein Bild per PHP runterzurechnen. Sondern verschiedene Versionen eines Bildes upzuloaden.
welches Protokoll willst Du nutzen?
Wenn Du Dich für HTTP entscheidest, gibt es eine JavaScriptlösung, daß mit allen JS-fähigen Browsern funktionieren wird.
Wenn Du Dich für FTP entscheidest, solltest Du mit einem PHP-CLI-Programm arbeiten, das auf der Kommandozeile einen Parameter erhält und daraus viel macht.
Gruß aus Berlin!
eddi
Hi Eddie,
nachdem das ganze mehr oder weniger in einer Art CMS geschehen soll würde sich wohl Http anbieten. Möchte zwar für die eigentliche Seite Javascript vermeiden, aber für die Admin-Ebene spricht eigentlich nichts dagegen. Wenn Du da was kennst, oder mir sagen kannst wo ich suchen muß wäre ich Dir wirklich dankbar.
Grüße,
Moses
Danke für den Link,
werde ich mich morgen früh mal näher mit befassen - ist jetzt zu spät für mich (ja, ja man wird alt...)
Auf den ersten Blick scheint es mir aber, daß hier alle Dateien in den gleichen Ordner hochgeladen werden (hat natürlich auch was für sich und würde schon einige Arbeit erleichtern - aber das eigentliche Problem würde es nicht lösen)...
Danke, grüße und gute Nacht,
MOses
Hallo,
...aber das eigentliche Problem würde es nicht lösen...
stimmt, denn das ist so einfach zu realisieren, das es dafür einfach kein Beispiel gibt. Hole Dir die Größe von jedem einzelnen Bild mit getimagesize() und mache nach den einzelen Dimensionen eine Fallunterscheidung. So schwer kann das doch nun wirklich nicht sein.
Gruß aus Berlin!
eddi
Hallo,
ich habe den Thread hier mit Interesse vefolgt. Generell sollte MOses vorher mal testen ob bei der Anzahl/Qualität der Bilder max_post_size oder max_upload_size (weiß nicht genau was da greift / wie es genau heißt) auf dem Server ausreicht. Da der Benutzer ja Wert auf hohe Qualität der Bilder legt, wird die Komprimierungsrate auch nicht so hoch ausfallen, dafür aber die Dateigröße. Deshalb glaube ich, das bei 4 Bildern z.B. 2 MB evtl. nicht ausreichen würden.
@Eddi: Sonst wäre eine PHP-CLI-Variante, die FTP nutzt auch meine Wahl, bzw. nutze ich diese Variante selber, weil hier auch gleich die Möglichkeit besteht beim Upload lokal Infos aus den Bildern auszulesen und in eine (remote)DB einzutragen, usw.
Und man die PHP-Umgebung natürlich so gestalten kann wie man sie gerne hätte, z.B. 500 MB Arbeitsspeicher, alle Extensions der Wahl, usw, - anstelle der webhosterseitigen Begrenzungen. (Ich hab halt nur einen kleinen preiswerten Webspace)
Zur automatisierten Bildbearbeitung nutze ich lieber netpbm-tools anstelle von GD. Ist viel besser in der Qualität aber auch sehr resourcen-hungrig.
Gruß,
Vladimir
Hallo Vladimir,
Generell sollte MOses vorher mal testen ob bei der Anzahl/Qualität der Bilder max_post_size oder max_upload_size (weiß nicht genau was da greift / wie es genau heißt) auf dem Server ausreicht. Da der Benutzer ja Wert auf hohe Qualität der Bilder legt, wird die Komprimierungsrate auch nicht so hoch ausfallen, dafür aber die Dateigröße. Deshalb glaube ich, das bei 4 Bildern z.B. 2 MB evtl. nicht ausreichen würden.
Oops, gibt es da Beschränkungen was ich hochladen kann? War mir gar nicht klar - wobei, wenn ich drüber nachdenke, das natürlich absolut Sinn macht... Stimmt bei der Größe könnte Probleme geben - muß man dann eventl. doch über normalen FTP Upload lösen (oder halt die Bilder einzeln hochladen...)
Sonst wäre eine PHP-CLI-Variante, die FTP nutzt auch meine Wahl, bzw. nutze ich diese Variante selber, weil hier auch gleich die Möglichkeit besteht beim Upload lokal Infos aus den Bildern auszulesen und in eine (remote)DB einzutragen, usw.
Hättest Du da ein Script oder ein Beispiel wie sowas aussehen würde?
Danke und Grüße,
Moses
Hi,
Nachdem mein Auftraggeber natürlich seine Updates so einfach wie möglich halten will, hatte ich gehofft, es gäbe die Möglichkeit z.B. vier gleichlautenden Dateien aus vier verschiedenen Ordner auf meinem lokalen system automatisch in vier verschiedene Ordner des remotes systems zu laden, in dem ich nur einmal den Dateinamen angebe...
Installier einfach einen lokalen Webserver mit PHP (einfach: XAMPP) und schreib für den ein PHP-Script. Das Script hat dann auch Zugriff auf euer Dateisytem, kann sich alles zusammensuchen, und dann auf den Online-Webserver schieben ...
Gruß, Cybaer
Hallo!
Schon mal an ein Batch Skript gedacht?
Müsste eigentlich sogar nur mit den Boardmitteln von Windows 2000 oder XP gehen.
Der Befehl ftp kennt den Schalter -s. Da kannst du eine Datei angeben um ftp "fernzusteuern".
Unter Windows könnte man dann noch das Explorer Kontextmenü so erweitern, dass bei einem Rechts-klick auf die Datei, eine Verknüpfung auf das entsprechende Batchfile aufgerufen wird. Dieses Batchfile lädt dann die entsprechenden File per FTP hoch.
mfg
frafu
Hiho,
mit serverseitigem PHP ist das sicherlich Wunschdenken! Wäre ja auch schlimm, wenn PHP einfach so deine Festplatte durchsuchen und irgendwelche Dateien hochladen könnte, die du nicht explizit angegeben hast - und genau das willst du in diesem Fall ja. Dein Problem lässt sich nur mit irgendetwas auf deinem Rechner lösen. Da würde es auch mit PHP gehen, aber es gibt sicherlich bessere Methoden (irgend eine Sprache deiner Wahl).
Grüße
Marc
Hallo,
Da würde es auch mit PHP gehen, aber es gibt sicherlich bessere Methoden (irgend eine Sprache deiner Wahl).
welche Sprache könnte da je besser sein, als PHP ;)
Gruß aus Berlin!
eddi
Hallo,
welche Sprache könnte da je besser sein, als PHP ;)
Grüße
Jeena Paradies
Hallo,
welche Sprache könnte da je besser sein, als PHP ;)
da ist ja Assembler noch einfacher :$
Gruß aus Berlin!
eddi