php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.08.2007, 08:52  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard Zip und php.ini & Wie Bilder speichern?

Hi Leute

Ich bin gerade dabei, meine Page zu optimieren. Dazu gehört auch die Bildergallerie, welche ich jetzt gerne vereinfachen würde. Bis anhin musste der User per FTP die Bilder hochladen und die entsprechenden Datenbankeinträge über ein Interface anlegen.

Nun möchte ich aber, dass die User einfach nur ein Zip-File hochladen müssen, welches dann vom Server automatisch bearbeitet wird. Hab mir dazu folgenden Artikel zu Gemüte geführt: http://de2.php.net/zip

Allerdings scheitere ich schon ziemlich früh:
PHP-Code:
    $zip zip_open("test.zip");
    
    if(
is_resource($zip))    { echo "true"; }else{ echo "false"; } 
Da die Funktion zip_read() als Parameter eine Variable vom Typ "resource" verlangt (wie mir die ausgegebene Fehlermeldung von zip_read() unmissverständlich klar macht), teste ich darauf. Es ist jedoch keine keine resource. Jedoch ist $zip auch nicht === false, was heissen muss, dass zip_open die Datei findet.

In der Doku heisst es, dass in der php.ini, unter Windows, "php_zip.dll" auf enabled sein muss. Bedeutet "extension=php_zip.dll", dass dem so ist?

Ich bin also mehr oder weniger ratlos, warum zip_open() das Archiv findet, schlussendlich aber keinen Zeiger darauf zurück gibt. Kann mir da einer von euch helfen?

Zweite Frage: Was ist performance-technisch klüger?
1. Bilder in der Datenbank ablegen
2. Bilder in einem separaten Ordner speichern und den Pfad zum Bild in der DB ablegen

Herzlichen Dank für die Hilfe

Liebe Grüsse
Igäl
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.08.2007, 09:03  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Igäl,

ich vertraue beim Erstellen und Entpacken den ZIP-Funktionen von PHP nicht, weswegen ich dir aus persönlichen Gründen zur Verwendung von Command-Line-Tools raten würde. Mit einem gepflegten "unzip -d {/path/ot/file.zip}" geht das einfacher. Den Prozess muss man einfach einmal erstellen (kann auch ein Shell-Skript sein) und dann nur noch von PHP parametrisiert ausführen lassen. Ich persönlich mag das lieber, denn die nativ CMD-Tools sind da schneller.

Frage 2 (Extension in php.ini): Ja, die Extension muss erst aktiviert sein, sonst geht da nix. Das kannst au aber mit extension_loaded() prüfen oder ein phpinfo() ausgeben lassen.

Frage 3 (Bilder und Performance): Es ist ganz klar erwiesen, dass das Speichern von Bildern - oder allgemein Dateien - in der Datenbank performanctechnischer Mist ist. Am eigenen Leib erfahre ich das aktuell auf Arbeit, da Microsoft's Sharepoint Server auch jede Datei seines Postals in der DB speichert. Nicht nur dass die Platten unseres SANs daduch extrem schnell voll werden, sondern auch die Performance des SQL-Servers sinkt gewaltig, da SELECTs einfach über die Datenmenge langsamer werden. Zu dem Thema gabs auch bei der PHP-FAQ unter http://www.php-faq.de/q/q-db-blob.html einen Artikel von Kristian Köhntopp, der das nochmal ausführlich beschreibt.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 23.08.2007, 09:14  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Dazu muss ich sagen, dass ich mit dem Gebrauch von PHP als Command-Line Sprache keinerlei Erfahrung habe und auch nicht weiss, ob mein Hoster ein solches Vorgehen erlaubt. Ist es aber nach einem solchen Command möglich, die entpackten Bilder (darauf läuft es schlussendlich hinaus) mit einem weiteren PHP-Script weiter zu verarbeiten?

Die Funktion extension_loaded("zip") ergibt "true", was von den angaben in phpinfo() bestätigt wird. Darum bin ich immernoch ratlos, was zip_open() macht. Irgendwie kann ich ja wirklich nicht weiterarbeiten, wenn er die Datei zwar findet, mir aber keinen Pointer zurück gibt

Ok danke für die Antwort. Werde demnach meine gängige Praxis mit der Bilder-Speicherung so beibehalten.

Gruss Igäl
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 23.08.2007, 10:17  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Ok ich hab den Fehler von zip_open gefunden. Damit die Funktion mit der Datei arbeiten kann, benötigt sie einen absoluten Pfad.

Habe jetzt einfach mit realpath("test.zip") gearbeitet. So hats funktioniert.

Edit:
Da ich aber irgendwie jetzt doch nicht mehr so Fan davon bin, dass der User ein Zip-File mit seinen Bildern hochlädt (das sind Teilweise an die 200 Bilder, was eine ziemliche Datenmenge darstellt --> Probleme mit timeouts, etc.), habe ich nun kurz nach alternativen Lösungen gesucht und bin auf die Idee gekommen, dass der User ein Verzeichnis angeben könnte, in welchem die Bilder liegen.

Ist es möglich, dass PHP ein, vom User angegebenes Verzeichnis, ausliest und alle gefundenen Bilddateien hochlädt?
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 23.08.2007, 11:13  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Ist es möglich, dass PHP ein, vom User angegebenes Verzeichnis, ausliest und alle gefundenen Bilddateien hochlädt?
Nein, weil wie üblich: PHP serverseitig, Verzeichnisse auf Client nicht
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 23.08.2007, 11:37  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich hatte mir darüber auch mal Gedanken gemacht, ich kam eigentlich zu folgenden Möglichkeiten:
-Albackenes Formular
-WebDAV
-Clientplugins (Flash, Java)
-Gast-FTP Zugang
-ZIP

Letztlich hab ich das ZIP genommen, alternativ auch hochzuladen über den Gast-FTP Zugang. Timeouts etc. kannst du ja einfach selbst hochsetzen .. und wenns wieder mal am Hoster scheitert. Tja dann wirds halt echt mal Zeit den zu wechseln, immer kostenlos schlägt sich halt auch auf die Qualität nieder.
Zergling-new ist offline  
Alt 23.08.2007, 12:52  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Bin eigentlich seit 2003 beim selben Hoster und der nimmt auch Geld für seinen umfassenden und, wie ich sagen muss, guten Service. Deiner Reaktion entnehme ich aber, dass Kommandozeilen-basiertes PHP bei den Hostern normalerweise möglich ist.

Hast du das ZIP wie Dr. e über Kommandozeile oder mit den zip-Libaries von PHP gelöst?
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Bilder speichern m-elssner PHP Tipps 2006 1 19.06.2006 18:00
Bilder aus Dir in mehrdim. Array speichern Riot PHP Tipps 2006 11 05.06.2006 23:12
Bilder temporär speichern FireFIghter PHP Tipps 2006 6 11.03.2006 12:57
PHP.ini wird nicht gefunden PHP Tipps 2006 5 03.01.2006 17:29
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder hochladen und Namen in DB speichern PHP Tipps 2005-2 3 21.06.2005 16:11
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
Bilder speichern statt anzeigen... PHP Tipps 2005 3 25.04.2005 15:22
Bilder in Datenbank speichern Beatbox Datenbanken 2 29.03.2005 15:32
Script um Bilder einzufügen und auf dem Server speichern PHP Tipps 2004 2 23.10.2004 00:43
Bilder über php inMySqlDB speichern PHP Tipps 2004 1 10.09.2004 23:11
Bilder in Datenbank speichern PHP Tipps 2004 11 05.08.2004 10:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php.ini zip, gentoo zip_open, php zip commandline, php.ini zip_open, html bild aus zip, http://www.php.de/php-tipps-2008/44639-zip-und-php-ini-wie-bilder-speichern.html, php zip_open speichern, zip php.ini, sharepoint server benutzer bild hochladen, php zip $e=\'\';, php zip bild einfügen, ich bin grad ini, php ini zip, php.ini bilder hochladen, php ini zip upload, php.ini zip-unterstützung, \standard zip-unterstützung\ ein php, standard zip-unterstützung php.ini, bilder als zip ordner hochladen und in eine datenbank speichern, bilder per zip hochladen und in einen ordner speichern php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.