Diesen Thread durchsuchen:   1 Anonyme Benutzer



BottomBottom  Vorheriges Thema Vorheriges Thema  Nächstes Thema Nächstes Thema   Zum Post anmelden

(1) 2 »


Aw: Fotoupload
#12
Co-Administrator
Co-Administrator


Siehe Benutzerinformationen
Hi mamba

checkMaxFileSize funktioniert nur, wenn der Upload in das temporäre Verzeichnis erfolgt ist und das Array $_FILES['userfile']['size'] einen Wert hat.

Die Fehlerbehandlung aus dem php-fileupload fehlt.

Ich habe mal meinen Vorschlag auf xoops.org gepostet:
http://xoops.org/modules/newbb/viewtopic.php?post_id=358306

Gepostet am:31.07.2014
EDV = Epoche der Verzweiflung
 Top  Bericht


Aw: Fotoupload
#11
Moderator
Moderator


Siehe Benutzerinformationen
Zitat:
Ich schau mal, ob ich die Fehlerbehandlung in die uploader.php einbauen kann und poste dann den Code.


Das haben wir bereits:

function checkMaxFileSize()
{
  if (!isset(
$this->maxFileSize)) {
      return 
true;
  }
  if (
$this->mediaSize $this->maxFileSize) {
      
$this->setErrors(sprintf(_ER_UP_FILESIZETOOLARGE$this->maxFileSize$this->mediaSize));

      return 
false;
  }
  return 
true;
}


Oder brauchst Du was anderes?

Gepostet am:26.07.2014
 Top  Bericht


Advertisement


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


Aw: Fotoupload
#10
Administrator
Administrator


Siehe Benutzerinformationen
Wenn du nur die reinen Fehlermeldungen brauchst:
http://php.net/manual/de/features.file-upload.errors.php

Ansonsten kann man da noch ein paar Funktionen einbauen um das entsprechend steuern zu können.

Gepostet am:26.07.2014
 Top  Bericht


Aw: Fotoupload
#9
Co-Administrator
Co-Administrator


Siehe Benutzerinformationen
Mann, bin ich bescheuert, wer lesen kann ist klar im Vorteil.

Das $_FILES-Array liefert eh alles, was ich brauche
Zitat:
array(5) { ["name"]=> string(20) "guek2010_3_quali.jpg" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(1) ["size"]=> int(0) }


["error"]=> int(1) bedeutet: UPLOAD_ERR_INI_SIZE (Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe)

Ich schau mal, ob ich die Fehlerbehandlung in die uploader.php einbauen kann und poste dann den Code.

Gepostet am:26.07.2014
EDV = Epoche der Verzweiflung
 Top  Bericht


Aw: Fotoupload
#8
Moderator
Moderator


Siehe Benutzerinformationen
Hast Du bereits XOOPS 2.5.7 installiert?

In XOOPS 2.5.7, wir haben in XoopsMediaUploader __construct folgendes gemacht:

$maxUploadInBytes   $this->return_bytes(ini_get('upload_max_filesize'));
$maxPostInBytes     $this->return_bytes(ini_get('post_max_size'));
$memoryLimitInBytes $this->return_bytes(ini_get('memory_limit'));
if (
intval($maxFileSize) > 0) {
   
$maxFileSizeInBytes $this->return_bytes($maxFileSize);
   
$newMaxFileSize     min($maxFileSizeInBytes$maxUploadInBytes$maxPostInBytes$memoryLimitInBytes);
   } else {
       
$newMaxFileSize min($maxUploadInBytes$maxPostInBytes$memoryLimitInBytes);
}
$this->maxFileSize $newMaxFileSize;



Gepostet am:26.07.2014
 Top  Bericht


Aw: Fotoupload
#7
Co-Administrator
Co-Administrator


Siehe Benutzerinformationen
Danke alfred

das Problem ist aber:
Mein Limit: 1 MB
PHP-Limit: 4 MB

Für den Upload verwende ich das Standardobjekt XoopsFormFile

Wenn ich jetzt eine Datei mit 2 MB hochladen will, schaut $_FILES so aus
Zitat:
array(5) { ["name"]=> string(20) "img53958a47b5927.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(34) "C:\Homepages\Xampp\tmp\phpB1B8.tmp" ["error"]=> int(0) ["size"]=> int(122913) }

Ich hab somit die Dateigröße und es wird auch eine entsprechende Fehlermeldung ("Datei ist zu groß") angezeigt.

Wenn ich jetzt eine Datei mit 5 MB hochladen will, schaut $_FILES so aus
Zitat:
array(5) { ["name"]=> string(20) "guek2010_3_quali.jpg" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(1) ["size"]=> int(0) }

Ich hab gar keine Dateigröße mehr und kann somit mit nichts mehr vergleichen.

Um die php-Funktion filesize zu verwenden, brauche ich aber den vollständigen Pfad, aber XoopsFormFile liefert nur den Dateinamen

Ich werd mich mal mit dem XoopsFormFile befassen, vielleicht kann man da was machen.

Gepostet am:25.07.2014
EDV = Epoche der Verzweiflung
 Top  Bericht


Aw: Fotoupload
#6
Administrator
Administrator


Siehe Benutzerinformationen
/class/uploader.php
ca Zeile 148
nach

function XoopsMediaUploader($uploadDir$allowedMimeTypes$maxFileSize 0$maxWidth null$maxHeight null)
    {
        
$this->extensionToMime = include $GLOBALS['xoops']->path('include/mimetypes.inc.php');
        if (!
is_array($this->extensionToMime)) {
            
$this->extensionToMime = array();
            return 
false;
        }
        if (
is_array($allowedMimeTypes)) {
            
$this->allowedMimeTypes =& $allowedMimeTypes;
        }
        
$this->uploadDir $uploadDir;
        
$this->maxFileSize intval($maxFileSize);


folgendes hinzufügen:

$php_maxsize = @ini_get('upload_max_filesize');
if ( @
ini_get('post_max_size') < $php_maxsize $php_maxsize = @ini_get('post_max_size');
  if ( 
$php_maxsize ) {   
    if ( 
$this->maxFileSize $php_maxsize $this->maxFileSize $php_maxsize;
        }


Gepostet am:24.07.2014
 Top  Bericht


Aw: Fotoupload
#5
Co-Administrator
Co-Administrator


Siehe Benutzerinformationen
Problem gefunden:

Nachdem ich mir in class/uploader.php das Array $_FILES ausgeben lassen habe, habe ich den Fehler gefunden. Die Datei war nicht nur größer als mein Limit, sondern auch noch größer als das Uploadlimit, das in der php.ini eingestellt war.

Frage an unsere Entwickler:
Wäre es möglich, die class/uploader.php so anzupassen, dass diese erkennt und meldet, wenn eine Datei größer als das php-Limit ist?


Gepostet am:24.07.2014
EDV = Epoche der Verzweiflung
 Top  Bericht


Aw: Fotoupload
#4
Co-Administrator
Co-Administrator


Siehe Benutzerinformationen
Danke ihr zwei


@ alfred: zwei mal fetchMedia ist natürlich Quatsch

Hab zumindest mal einen Teilerfolg zu melden. Die Fehlerausgabe ist nicht gestartet, weil beim ersten fetchMedia bereits der Fehler auftrat.
Der neue Code ist jetzt:
if ($uploader_siegerfoto_foto->fetchMedia("siegerfoto_foto_upload")) {
      
$uploader_siegerfoto_foto->setPrefix("siegerfoto_foto_") ;
      if (!
$uploader_siegerfoto_foto->upload()) {
        
$errors $uploader_siegerfoto_foto->getErrors();
        
redirect_header("siegerfoto.php",$errors);
      } else {
        
$siegerfoto_foto $uploader_siegerfoto_foto->getSavedFileName();
        echo 
"<br/>Upload erfolgreich";
      }
    } else {
      
$errors $uploader_siegerfoto_foto->getErrors();
      
redirect_header("siegerfoto.php",$errors);
      
$siegerfoto_foto $_REQUEST["siegerfoto_foto_select"];
    }


Allerdings bekomm ich jetzt folgende Fehlermeldung:
Zitat:
Fehler beim hochladen : guek2010_1_quali.JPG
Keine Datei zum Hochladen


Eigentlich sollte da doch dann kommen "Datei zu groß" oder so

Jemand eine Idee?

Gepostet am:24.07.2014
EDV = Epoche der Verzweiflung
 Top  Bericht


Aw: Fotoupload
#3
Administrator
Administrator


Siehe Benutzerinformationen
if ($uploader_siegerfoto_foto->fetchMedia("siegerfoto_foto_upload")) { 
      
$uploader_siegerfoto_foto->setPrefix("siegerfoto_foto_") ; 
      
$uploader_siegerfoto_foto->fetchMedia("siegerfoto_foto_upload"); 
      if (!
$uploader_siegerfoto_foto->upload()) {


2 x Upload? Was soll das bringen außer Fehler?

Gepostet am:23.07.2014
 Top  Bericht




(1) 2 »




[Erweiterte Suche]


Design by: XOOPS UI/UX Team