PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Bildupload funktioniert erst nach Refresh (http://www.selfphp.de/forum/showthread.php?t=15196)

8805-evergreen. 17.11.2006 12:17:02

Bildupload funktioniert erst nach Refresh
 
Guten Tag allerseits!

Hab mich zum ersten mal an ne Klasse gewagt.. soweit hats auch gut geklappt.

Kurz: Es geht um einen Bildupload. Eigentlich ne simple Sache, die ich schon mehrmals angewendet habe.

Hier eine gekürzte Version des Klassenaufrufs:

PHP-Code:

// Konfiguration
include ( 'class.image.php' );

$img_upload = new ImageManager$file_tmp_name$file_size$img_path$img_name$img_width$img_height );
$img_path_ok $img_upload -> FileUpload ();

if ( !empty( 
$img_path_ok ) ) {
    
    
// Bildeinstellungen vornehmen
    
$img_upload -> EditImage $img_path_ok$img_width$img_height );

    if ( !empty(
$img_path_ok) ) {
        echo 
'<img src="'.$img_path_ok.'">';
    }



Erläuterungen:
Die Funktion "FileUpoad()" gibt den Pfad des Bildes zurück.

In der Funktion "EditImage()", der dieser Pfad korrekt übergeben wird, werden Bildeinstellungen vorgenommen.

Problem:
Die Funktion "move_uploaded_file()" gibt true zurück, obwohl das Bild nicht hochgeladen wurde!?
Wenn ich die Seite aber aktualisiere, klappt es wie gewollt...

Ist jemandem dieses Problem bekannt?

Gruss Beat

Andes 17.11.2006 14:32:49

AW: Bildupload funktioniert erst nach Refresh
 
Bist du dir sicher, dass das Bild nicht auf den Server geladen wird? In entsprechendem Verzeichnis nachgeschaut?

Warum prüfst du zwei Mal ob $img_path_ok nicht leer ist? Das wird sich doch nicht innerhalb der Bedingung ändern.

Allerdings kann man dir nicht all zu viel sagen, da wir ja nicht wissen was in den Funktionen ausgeführt wird.

8805-evergreen. 17.11.2006 14:41:56

AW: Bildupload funktioniert erst nach Refresh
 
Hi Andes!

Stimmt.. das mit dem zweimaligen Abfragen macht keinen Sinn.. :)

Hier wäre die Upload Funktion:

PHP-Code:

function FileUpload ( ) {

    
// Variablen überprüfen
    
if ( empty( $this -> file_tmp_name ) ) {
        
$this -> CheckError 'Sie m&uuml;ssen ein Bild ausw&auml;hlen.' );
    }else {
        if ( 
$this->file_type != 'gif' && $this->file_type != 'jpg' && $this->file_type != 'png' ) {
            
$this -> CheckError 'Das Format des Bildes stimmt nicht. Erlaubt sind die Formate JPG, GIF und PNG.' );
        }else {    
        
            
$lokal $this->file_tmp_name;
            
$online $this->img_path.$this->img_name.'.'.$this->file_type;

            if ( !
move_uploaded_file $lokal$online ) ) {
                
$this -> CheckError 'Upload abgebrochen. Probieren Sie es noch einmal.' );
            }else {
                return 
$online;
            }
            
        }            
    }
    


Das komische ist ja, dass es erst beim zweiten Anlauf funktioniert... !

Brauchst du sonst nocht ein Code- Schnipsel, um dem Problem auf die Schliche zu kommen?

Gruss


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:36:09 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.