php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-09-2006, 10:41
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard Zip entpacken ohne zip() ?!

Hi,

hab ein schönes uploadscript für eine Bildergalerie geschrieben,
das Bilder ohne Probleme schön über ftp() hochläd.

Nun habe ich eine Überprüfung eingebaut wenn man eine .zip datei
hochläd das dieser dann entpackt werden soll und in einer Schleife
jede Datei darin lesen soll und in ein bestimmtes verzeichnis entpacken
soll.

Mein Problem ist das ich nur

BZip2 Version 1.0.2, 30-Dec-2001

zur Verfügung hab

Wollte auch schon diese class benutzen:
http://www.php-resource.de/forum/sho...n&pagenumber=1

aber irgendwie bringt der mit
immer folgendes:


PHP-Code:
Fatal errorCall to a member function on a non-object in /homepages/3/d100725797/htdocs/tts_fussballschule/galerie/admin/inc_upload.php on line 16 
Kennt von Euch jemand ne gute Klasse die ich benutzen könnte?

Gruß
Tom
Mit Zitat antworten
  #2 (permalink)  
Alt 15-09-2006, 10:57
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was steht denn auf Zeile 16...?
Mit Zitat antworten
  #3 (permalink)  
Alt 15-09-2006, 11:00
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
foreach ($_FILES as $file) {

    
// Wenn ein Zip File dann entpacken
    
IF(eregi("^.*(.zip)$"$file['name']))
    {
    echo 
$file['name']." ist eine zip Datei!";
        
        require(
"inc_zipclass.php");
        
        
$example->extractfile($file['tmp_name']); // Zeile 16
        
        
printr ($example);
            
    
$ist_bild "";
    }

}[ 
Mit Zitat antworten
  #4 (permalink)  
Alt 15-09-2006, 11:04
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Woher kommt denn $example? Du hast ja noch garkein Objekt erzeugt

Übrigens: Mach aus dem require mal ein require_once...
Mit Zitat antworten
  #5 (permalink)  
Alt 15-09-2006, 11:08
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also das steht in der Anleitung der class:

SRY kenn mich mit klassen noch gar ned aus

PHP-Code:

/*------------------------------------------------------------
 | To output files:
 | $example->getdata();
 | -returns file contents
 |
 | $example->filedownload($filename);
 | -filename - the name to give the file that is being sent
 |
 | $example->filewrite($filename,$perms); // perms optional
 | -filename - the name (including path) of the file to write
 | -perms - permissions to give the file after it is written
 +------------------------------------------------------------*/

/*------------------------------------------------------------
 | To extract files (tar and gzip)
 | $example->extract($data);
 | -data - data to extract files from
 | -returns an array containing file attributes and contents
 |
 | $example->extractfile($filename);
 | -filename - the name (including path) of the file to use
 | -returns an array containing file attributes and contents
 |
 | Both functions will return a string containing any errors
 +------------------------------------------------------------*/ 
Mit Zitat antworten
  #6 (permalink)  
Alt 27-09-2006, 10:10
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also hab mich nach ein paar Tagen Pause mal wieder ranngehockt.
Wie es scheint muss ich die klasse irgendwie zum laufen bringen,
weil bei mir safemode aktiviert ist und daher exec, system nicht aktiviert....
das zip modul ist auch nicht installiert und kann auch nicht installiert
werden auf dem Webserver...

So ich hoffe mal ihr könnt mir bei dem ansprechen der zip_class ein
wenig helfen...

Mein Script macht im Moment nur folgendes schaut beim absenden des
Formulars nach ob es eine tar datei ist wenn ja, läd sie die datei in
meinen "img_import" Ordner...

so weit so gut jetzt soll er ja die datei da entpacken dazu benutz ich
folgenden Code:

PHP-Code:
foreach($_FILES as $file){
    
        if(
eregi(".*([.][tar])"$file['name']))
        {
        
        
$ordner_img "img"// Orginalbilder
    
$ordner_import "img_import"// Tempordner für Bilder Import
    
$ordner_tmp "img_tmp"// Tempordner für Thumbnails
        
$serverroot $_SERVER['DOCUMENT_ROOT'].'/bilder/galerie';
        
        
//Testfile heisst: test.tar
        
$pfad_put $ziel_ftp.'/'.$ordner_import;
        echo 
$file['name']." ist eine Zip-Datei!<br><br>";
        
        
//--------- FTP LOGIN & Upload -------
                      
      //herstellen der Verbindung
      
$connect ftp_connect($host,$port);
      IF(!
$connect) die ("FTP Verbindungsaufbau gescheitert, ");
      
      
//Einloggen mit Benutzername und Kennwort
      
$log ftp_login($connect$user$pass);
      IF(!
$log) die ("FTP Login gescheitert, ");
      
      
// Wenn die Verbindung & der Login geklappt hat dann ausführung des Skriptes
      // Verzeichniswechsel
      
ftp_chdir($connect,$pfad_put);
      
      
// File Upload
      
$trans ftp_put($connect,$file['name'],$file['tmp_name'],FTP_BINARY);
      IF(!
$trans) die ("FTP Upload gescheitert, ");
            
      
ftp_quit($connect);
            
            require_once(
"inc_zipclass.php");
            
      
$gezippt= new gzfile();
      
$content $gezippt->extractfile($serverroot.'/'.$ordner_img.'/'.$ordner_import.'/'.$file['name']);
      
$tar = new tarfile();
      
$content $tar->extract($content['data']);
      
      foreach(
$content as $file_new)
      {
      
$fp=fopen($serverroot.'/'.$ordner_img.'/'.$ordner_import.'/'."{$file_new['filename']}",'wb');
      
fwrite($fp,"{$file_new['data']}");
      
fclose($fp);
            }
                                
        
$ist_bild "";
        } 
Leider macht der gar nix außer mir mein File hochzuladen

habs grad noch mit dem .gz file probiert kam wenigstens ja schon mal ne Fehlermeldung

PHP-Code:
DB77667.gz ist eine gz/tar Datei!


Warninggzinflate() [function.gzinflate]: data error in /home/www/htdocs/thomas-reichelt.net/bilder/galerie/admin/inc_zipclass.php on line 359 
LINE 359: data = gzinflate(substr($data,$offset,strlen($data)-8-$offset));

Geändert von tomtherock (27-09-2006 um 10:16 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 27-09-2006, 13:40
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hat bisher noch keiner diese zip_class zum laufen gebracht?

-> http://www.php-resource.de/forum/sho...n&pagenumber=1

Komm echt nicht weiter ...
Mit Zitat antworten
  #8 (permalink)  
Alt 29-09-2006, 14:17
tomtherock
 Registrierter Benutzer
Links : Onlinestatus : tomtherock ist offline
Registriert seit: Jun 2002
Ort: München
Beiträge: 334
tomtherock ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Soooo endlich geschafft zwar mit einem anderer Zipclass aber es funzt super und mit minimal Anforderungen!!! Und vorallem ohne exec oder system oder zip .


zip Class-> http://www.phpconcept.net/

in der Zip Class hab ich folgendes geändert:
PHP-Code:
// Pfad des Root Verzeichnis der Webspace Beispiel: /home/www/htdocs/rd-network.de/test
// Für Verzeichnisscripte mit PHP Befehlen Beispiel: f_open, f_nlist 
$serverroot $_SERVER['DOCUMENT_ROOT'].'/test/galerie';

$ordner_img "img"// Orginalbilder
$ordner_import "img_import"// Tempordner für Bilder Import
$ordner_tmp "img_tmp"// Tempordner für Thumbnails

  // define( 'PCLZIP_TEMPORARY_DIR', '/temp/' );
  // define( 'PCLZIP_TEMPORARY_DIR', 'C:/Temp/' );
  
define'PCLZIP_TEMPORARY_DIR'$serverroot.'/'.$ordner_img.'/'.$ordner_import.'/' ); 


hier mein Code:

PHP-Code:

// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< zip datei >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
IF($speichern){
$ist_bild 1;

//zip datei werden über ein formular hochgeladen
 
foreach($_FILES as $file){
    
        if(
eregi(".*([.][zip])"$file['name']))
        {
        
        
$ordner_img "img"// Orginalbilder
    
$ordner_import "img_import"// Tempordner für Bilder Import
    
$ordner_tmp "img_tmp"// Tempordner für Thumbnails
        
$serverroot $_SERVER['DOCUMENT_ROOT'].'/bilder/galerie';
        
        
        
$pfad_put $ziel_ftp.'/'.$ordner_import;
        echo 
$file['name']." ist eine ZIP Datei!<br><br>";
        
        
//--------- FTP LOGIN & Upload -------
                      
      //herstellen der Verbindung
      
$connect ftp_connect($host,$port);
      IF(!
$connect) die ("FTP Verbindungsaufbau gescheitert, ");
      
      
//Einloggen mit Benutzername und Kennwort
      
$log ftp_login($connect$user$pass);
      IF(!
$log) die ("FTP Login gescheitert, ");
      
      
// Wenn die Verbindung & der Login geklappt hat dann ausführung des Skriptes
      // Verzeichniswechsel
      
ftp_chdir($connect,$pfad_put);
      
      
// File Upload
      
$trans ftp_put($connect,$file['name'],$file['tmp_name'],FTP_BINARY);
      IF(!
$trans) die ("FTP Upload gescheitert, ");
            
      
            
// ENTPACKEN
            
require_once('inc_zipclass2.php');
      
$archive = new PclZip($serverroot.'/'.$ordner_img.'/'.$ordner_import.'/'.$file['name']);
      if (
$archive->extract() == 0) {
        die(
"Error : ".$archive->errorInfo(true));
      }
            
      
$archive = new PclZip($serverroot.'/'.$ordner_img.'/'.$ordner_import.'/'.$file['name']);
      if (
$archive->extract(PCLZIP_OPT_PATH$serverroot.'/'.$ordner_img.'/'.$ordner_import) == 0) {
        die(
"Error : ".$archive->errorInfo(true));
      }
            
// ENDE ENTPACKEN

            //danach Archiv löschen!
            
$delete ftp_delete($connect,$file['name']);
        IF(!
$delete) die ("($file['name'])FTP delete gescheitert.<br>");
            echo 
"<b>".$file['name']." wurde entpackt und wieder gelöscht die Bilder werden nun verarbeitet...</b><br>"
danach liegen die Bilder in dem Ordner img_import...danach kann man sie
ja wie ich zb einlesen lassen und dann umbennen in db abspeichern und in
nen Ordner verschieben. Jeder wie er´s eben braucht .

Ich hoffe das ich einige damit helfen kann und ne lange such erspare .

Grüße
Tom
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:33 Uhr.