MyXoops Forum

Aw:: Upload Manager für XOOPS-Installation [Entwicklung allgemein] - myXOOPS German Support

yrow

"myXOOPs"-Neuling
Gepostet am:28.07.2009 15:07
yrow
yrow Offline (Show more)
"myXOOPs"-Neuling
Posts: 9
Since: 02.04.2007
#3

Aw:: Upload Manager für XOOPS-Installation

Zitat:
Und welcher Fehler kommt?


der Upload der Datei erfolg ohne Fehler

bei mein Prototyp
steht nach dem Upload über dem Submit-form

/tmp/php8pyhXv /srv/....../upload/contact_v1.7.zip

das bedeutet die Datei ist hoch geladen (siehe /temp/php8pyhXv) und wurde erfolgreich aus dem PHP eigenen Temp-Ordner verschoben (siehe /srv/....../upload/contact_v1.7.zip)

die Berechtigungen der Datei im Upload-Ordner ist 600, also lesen der Datei für den PHP-Interpreter sollte doch gehen oder? der Ipload-Ordner selbst hat 777 als Berechtigung.


unter meinen Submit-form habe ich mir alle Infos ausgeben lassen und dort taucht dann so etwas auf
/srv/....../unzip/contact/admin/index.html
/srv/....../unzip/contact/admin/menu.php
/srv/....../unzip/contact/class/contactclass.php
/srv/....../unzip/contact/class/index.html
/srv/....../unzip/contact/getgfx.php
.
.
.
.
Filenummer :13
Error = (13)
Errormessage = (13)
Filename = (13)
Path = (13)
Filetime 2007-12-20 19:27:30
/srv/....../unzip/contact/language/english/main.php
/srv/....../unzip/contact/language/english/modinfo.php
/srv/....../unzip/contact/language/german/index.html
.
.
.
.


die Filetime-Angabe ist korrekt, aber alle anderen Debug-Infos sind nicht das was ich erwartet hätte?!? z.B. Path oder Filename

mein Problem ist das ich nicht wirklich der PHP Profi bin und keine so richtige Idee habe wie ich jetzt vorgehen soll. Da ich mir den Fehler nicht erklären kann. Er liest ja das Zip-Archiv (siehe "/src/..../unzip/contact/admin/index.html" und so weiter) und zwischen durch bekomme ich eine Fehlermeldung von unzip.lib.php ( siehe "Filenummer :13....").
das Ergebnis ist im "unzip"-Ordner legt er in diesem Fall einen leeren Ordner "contact" an und das wars. Die Laufzeit sollte nicht das Problem sein, da es sich beim Modul Contact gerade mal im ein ~28Kbyte Zip-Archiv handelt. Bei größeren Archiven muss man das natürlich berücksichtigen, so wie die max_upload_size von PHP

Zitat:
Meiner Meinung nach ist der FTP-Upload aber immer noch die beste Lösung. Wenn du/man nur eine geringe Bandbreite hast/hat und man noch nebenbei surfen will, kann man in den meisten FTP-Programmen den Datendurchsatz regulieren.


genau das ist es ja, das uppen dauert ~eine halbe Stunde und mehr, wenn ich jetzt noch den FTP drosseln muss....
[ironie on]
na herzlichen Glückwunsch ihr upload den sie vor 1 Woche gestartet haben ist heute pünklich fertig geworden
[ironie off]

frankblack

"myXOOPs"-Profi
Gepostet am:28.07.2009 14:41
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#2

Aw:: Upload Manager für XOOPS-Installation

Und welcher Fehler kommt?

Hat der Ordner unzip globale Schreibrechte?

Der Upload und das Entpacken von einer XOOPS-Zip ist nicht gerade trivial. Eines der Hauptprobleme dürfte die lange Laufzeit des Scripts sein. Daten müssen entpackt, Verzeichnisse erstellt, Daten verschoben werden etc.

Nicht jeder hat die Möglichkeit den Wert für die Laufzeit des Skripts zu erhöhen.

Ich habe dies mal (als erster?) für ein Modul realisiert und es hat tatsächlich auch funktioniert. Du kannst ja gerne mal den tinyeditor auseinandernehmen um zu sehen, wie ich das Ganze gelöst habe.

Meiner Meinung nach ist der FTP-Upload aber immer noch die beste Lösung. Wenn du/man nur eine geringe Bandbreite hast/hat und man noch nebenbei surfen will, kann man in den meisten FTP-Programmen den Datendurchsatz regulieren.
... is gone with the wind ...

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

yrow

"myXOOPs"-Neuling
Gepostet am:28.07.2009 10:41
yrow
yrow Offline (Show more)
"myXOOPs"-Neuling
Posts: 9
Since: 02.04.2007
#1

Upload Manager für XOOPS-Installation

Ich hoffe das ich hier richtig bin...

Es gibt viele User (vorallem in ländlichen Regionen) die mit DSL 512, 768 bzw. 1000 auskommen müssen. Ein Upload einer XOOPS-Installation mit ein paar Modulen dauert min. eine halbe Stunde... sollte man evtl. noch etwas im Internet nebenbei machen, verlängert sich das Ganze logischer weise...

MEINE IDEE:
Wie kann man die Uploadzeit verkürzen? Meine Idee ist die XOOPS Dateien in einem Zip-Archiv verpacken und uploaden. durch das packen kann man die Uploadgröße mal locker halbieren.
Des weiteren muss bei einer FTP Übertragung für jede Datei ein gewisser zusätzlicher Overhead gerechnet werden, der mit der Anzahl der Datei extrem ansteigen kann und damit beträchtliche Zeit kostet...
hier ein kurzer Ausschnitt was ich mit Overhead meine:
257 "/" is the current directory
PORT 192
,168,0,10,17,93
200 PORT command successful
STOR search
.php

Da alles in einem Archiv verpackt wird, fällt dieser Overhead weg (ist ja nur 1 Datei )


MEIN LÖSUNGSANSATZ:
Ich habe ein bischen rumexperiementiert mit unzip.lib.php und zip.lib.php aus dem PhpMyAdmin. Ich kann Zip-Archive öffnen und lesen, aber beim entpacken und schreiben bekomme ich immer Fehler.

hier mein Prototyp der Upload-Funktion:
<html>
<head>
</head>
<body>
<?php
$uploadZipFile 
dirname($_SERVER["SCRIPT_FILENAME"])."/upload/".$_FILES['thefile']['name'];
$tmp_file $_FILES['thefile']['tmp_name'];
$unzipPath dirname($_SERVER["SCRIPT_FILENAME"])."/unzip/";
$logFile "";

echo 
$tmp_file."   ".$uploadZipFile;

if(
$_POST["submit"]=="Senden")
{
 if(!
move_uploaded_file($tmp_file$uploadZipFile))
  {
   
$logFile .= "FEHLER: ".getErrorMessage($_FILES['userfile']['error'])."<br>";
  }

 
myUnzip($uploadZipFile$unzipPath);
}
?>
 <form enctype="multipart/form-data" action="<?php echo $PHP_SELF?>" method="post">
    <label>file senden:</label><input name="thefile" type="file"> 
    <input type="submit" name="submit" value="Senden">
  </form>
 <?php echo $logFile?>
</body>
</html>

<?php
function getErrorMessage($errorCode)
{
 if(
$errorCode == 0)
 {
   return 
"Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen.";
  }

 if(
$errorCode == 1)
 {
   return 
"Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.";
 }

 if(
$errorCode == 2)
 {
   return 
"Wert: 2; Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.";
  }

 if(
$errorCode == 3)
 {
   return 
"Die Datei wurde nur teilweise hochgeladen.";
  }

 if(
$errorCode == 4)
 {
   return 
"Es wurde keine Datei hochgeladen.";
 }
}

function 
myUnzip($file$unzipPath)
{
  require_once(
"zip.lib.php");
  require_once(
"unzip.lib.php");
  global 
$logFile;
  
  
$zip = new SimpleUnzip($file);
  
$entries $zip->ReadFile($file);

 for(
$index 0$index $zip->Count(); $index++)
 {
   if(
$zip->GetError($index) != 0)
   {
     
$logFile .= "<br>Filenummer :$index<br>" .
             
" * Error = $zip->GetError($index)<br>" .
             
" * Errormessage = $zip->GetErrorMsg($index)<br>" .
             
" * Filename = $zip->GetName($index)<br>" .
             
" * Path = $zip->GetPath($index)<br>" .
             
" * Filetime = ".date('Y-m-d H:i:s'$zip->GetTime($index));
   }
   else
    {
     
$logFile .= "<br>".$unzipPath.$zip->GetPath($index)."/".$zip->GetName($index);
    
      
$fileForWriting fopen_save($unzipPath.$zip->GetPath($index)."/".$zip->GetName($index), 'w');
      if(
$fileForWriting != false)
      {
       
fwrite($fileForWriting$zip->GetData($index));
       
fclose($fileForWriting);
      }
   }
 }
}

function 
fopen_save($path$mode$chmod=777)
{
  
$directory dirname($path);
  
$file basename($path);
  global 
$logFile;
  if (!
is_dir($directory))
  {
   if (!
mkdir($directory$chmod))
   {
     
$logfile .= '<font color="red">FEHLER bei anlegen des Verzeichnisses</font>'.$directory;
      return 
FALSE;
   }
 }
 return 
fopen ($path$mode);
}
?>


Im Anhang habe ich noch die beide Dateien aus dem PhpMyAdmin angehängt...

Datei anhängen:


Link nur für registrierte Benutzer
Diesen Thread durchsuchen:  1 Anonyme Benutzer

Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
Modulentwicklung New Xoops Xcreate Module 0 5319 26.11.2025 15:22
efkan Gehe zum letzten Beitrag
Modulentwicklung XOOPS Custom Field Module 1 1813 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag