Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Upload läuft in Timeout

Diskussion: Upload läuft in Timeout im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo zusammen, mal wieder an Problem an dem ich mir die Zähne ausbeiße... das Problem ist nun ich möchte ...

Antwort
Alt 03.03.09, 21:25   #1 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Upload läuft in Timeout

Anzeige

Hallo zusammen,

mal wieder an Problem an dem ich mir die Zähne ausbeiße...
das Problem ist nun ich möchte in meiner Bildergalerie natürlich Bilder hochladen.

Ich habe nen Formlular, was ich per JavaScript erweitern kann. (1 Datei, 2 Datein, 3 Datein, n Dateien.)

Das Problem ist nun, wählt der User beispielsweise 5 Files zum hochladen aus (in dem Falle Bilder), lädt mein PHP-Skript die Dateien hoch.

Der Code dazu:

code   

PHP-Code:
<div align="left"><b>Bild-Upload:</b></div>
<div align="center">
    <form action="upload<?php echo $_GET['id']; ?>done.html" method="POST" enctype="multipart/form-data">
        <table width="50%" border="0" ID="FileTable">
            <tr>
                <td>Admin-PIN:</td>
                <td><input type="text" name="PIN"></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" name="Submit" value="Hochladen">
                    <input type="reset" value="Zurücksetzen">
                    <input type="button" name="Mehr Files" value="Mehr Files" onClick="start(); return false;">
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    &nbsp;
                </td>
            </tr>
            <tr>
                <td>Titel des Bildes:</td>
                <td><input type="text" name="Titel"></td>
            </tr>
            <tr>
                <td>Bild:</td>
                <td><input type="file" name="Bild[]" accept="image/*" size="60"></td>
            </tr>            
        </table>
    </form>
</div>

<?php


if(isset($_GET['id']) AND $_GET['action']=='done'){
    if(
$_POST['PIN'] == ADMIN_PIN)
    {
        for (
$i 0$i count($_FILES['Bild']['tmp_name']); $i++) {
            
/*$bar->setMessage('Upload in progress ...');
            $bar->setAutohide(true);
            $bar->setSleepOnFinish(1);
            //$bar->setForegroundColor('#ff0000');
            
            $elements = count($_FILES['Bild']['tmp_name']); //total number of elements to process
            $bar->initialize($elements); //print the empty bar
            
            
            for($i=0;$i<$elements;$i++){
                
                sleep(1); // simulate a time consuming process
                
                $bar->increase(); //calls the bar with every processed element
                
                if($i==1){
                    $bar->setMessage('Uploading your images ...');
                    //$bar->setForegroundColor('#3F41FF');
                }
            }*/
            
            
$AlbumID    $_GET['id'];
            
$name         $_FILES['Bild']['name'][$i];
            
$type         $_FILES['Bild']['type'][$i];
            
$tmp_name    $_FILES['Bild']['tmp_name'][$i];
            
$size         = ($_FILES['Bild']['size'][$i])/1024;
            
$hash         md5($name.$type.$size.$tmp_name.time());  
            
$pfad        PICTURE_PATH;
            
            if(
$_FILES['Bild']['name'][$i]!='' OR $_POST['Titel']!=''){        
                
                if(
$type != "image/gif" && $type != "image/jpeg" && $type !="image/png" && $type !="image/pjpeg") { 
                    
$err[] =     "<div id='error' align='center'>
                            Nur gif, png und jpeg Dateien duerfen hochgeladen werden.
                            </div>"

                    echo 
"<td>".$err[0]."</td>";
                } 
                if(
$size MAX_FILESIZE) { 
                    
$err[] =     "<div id='error' align='center'>
                            Die Datei welche du hochladen willst, ist zu gross!<br>
                            Maximale Dateigrosse betraegt 500 KB!
                            </div>"

                    echo 
"<td>".$err[0]."</td>";
                } 
                if(empty(
$err)) {
                    
/*$bar->setMessage('Upload in progress ...');
                    $bar->setAutohide(true);
                    $bar->setSleepOnFinish(1);
                    //$bar->setForegroundColor('#ff0000');
                    
                    $elements = count($_FILES['Bild']['tmp_name']); //total number of elements to process
                    $bar->initialize($elements); //print the empty bar
                    
                    
                    for($i=0;$i<$elements;$i++){
                        
                        sleep(1); // simulate a time consuming process
                        
                        $bar->increase(); //calls the bar with every processed element
                        
                        if($i==1){
                            $bar->setMessage('Uploading your images ...');
                            //$bar->setForegroundColor('#3F41FF');
                        }
                    }*/
                    
if(move_uploaded_file($tmp_namePICTURE_PATH.$name ))
                    {
                        
$dest $pfad.$hash;
                        
                        switch(
$type)
                        {
                            case 
"image/gif":
                                
$dateiendung ".gif";
                                if (
file_exists(PICTURE_PATH.$hash.".gif")){
                                    
unlink($pfad.$name.".gif");
                                }
                                
$bname=$name;
                                
rename(PICTURE_PATH.$name$dest.$dateiendung );
                                break;
                            case 
"image/jpeg":
                                
$dateiendung ".jpg";
                                if (
file_exists(PICTURE_PATH.$hash.".jpg")){
                                    
unlink(PICTURE_PATH.$hash.".jpg");
                                }
                                
$bname=$name;
                                
rename(PICTURE_PATH.$name$dest.$dateiendung );
                                break;
                            
                            case 
"image/png":
                                
$dateiendung ".png";
                                if (
file_exists(PICTURE_PATH.$hash.".png")){
                                    
unlink(PICTURE_PATH.$hash.".png");
                                }
                                
$bname=$name;
                                
rename(PICTURE_PATH.$name$dest.$dateiendung );
                                break;
                            
                            case 
"image/pjpeg":    
                                
$dateiendung ".jpg";
                                if (
file_exists(PICTURE_PATH.$hash.".jpg")){
                                    
unlink(PICTURE_PATH.$hash.".jpg");
                                }
                                
$bname=$name;
                                
rename(PICTURE_PATH.$name$dest.$dateiendung );
                                break;
                        }
                        
                        
//$common->createThumb($dest.$dateiendung, $hash.$dateiendung);
                        
$PicHoehe    $common->getPicWidth();
                        
$PicBreite    $common->getPicHeight();
                        
$database->insertupdateData("INSERT INTO bilder (
                                    ID ,
                                    Name ,
                                    Titel ,
                                    Dateityp ,
                                    Größe ,
                                    Höhe ,
                                    Breite ,
                                    Pfad ,
                                    Hash ,
                                    Bewertung ,
                                    Bewertung_Anz ,
                                    Bild_Datum ,
                                    Autor_ID ,
                                    Ordner_ID ,
                                    Thumbnail_Pfad
                                    )
                                    VALUES (
                                    NULL, 
                                    '"
.$name."', 
                                    '"
.$_POST['Titel']."', 
                                    '"
.$dateiendung."', 
                                    '"
.ceil($size)."', 
                                    '"
.$PicHoehe."', 
                                    '"
.$PicBreite."', 
                                    '"
.$dest.$dateiendung."', 
                                    '"
.$hash."', 
                                    '0', 
                                    '0', 
                                    NOW(), 
                                    NULL,
                                    "
.$AlbumID.", 
                                    '"
.THUMBNAIL_PATH.$hash.$dateiendung."'); "); 
                    }
                    else{
                        echo 
"<div id='error'><b>Fehler: </b><br>Datei konnte nicht hochgeladen werden! Bitte versuche es noch einmal.</div>";    
                    }
                }
            }
            else{
                
$err[] =     "<div id='error' align='center'>
                        Bitte fülle alle Felder aus!
                        </div>"

                echo 
"<td>".$err[0]."</td>";    
            }
        }
    }
    
/*else
    {
        $err[] =     "<div id='error' align='center'>
                Bitte bestätige die Änderung mit deinem PIN!
                </div>"; 
        echo "<td>".$err[0]."</td>";
    }*/
}
?>
<div id='pageing'><a href='index.php'>Zurück zur Übersicht</a></div>


So, das Problem ist wie gesagt, dass der Server unmittelbar in ein Timeout rennt.

Meine Frage nun:
Wir kann man das umgehen und einen Upload von mehreren Datein realisieren?

Gruß
aus NRW
reaLInsanity ist offline   Mit Zitat antworten
Alt 04.03.09, 08:11   #2 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

hast du die Möglichkeit, die php.ini zu beeinflussen?

dort gibt es eine Einstellung
Code:
max_execution_time=30
(Angabe in Sekunden)
diese könntest du weiter hoch setzen.

des weiteren könntest du vor der Verarbeitung der Daten ein
PHP-Code:
set_time_limit() 
ausführen, damit direkt nach dem Upload der Execution-Timer nochmal zurückgesetzt wird
http://de.php.net/set_time_limit


eine weitere Möglichkeit wäre AJAX... 5 Dateien parallel über 5 einzelne Requests auf den Server laden...
mit AJAX hab ich aber selbst auch noch nicht so die Erfahrung.
beavisbee ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 09.03.09, 07:01   #3 (permalink)
 
Benutzerbild von b4ck
 
Registriert seit: 13.02.06
b4ck Leistung: Z3
Likes: 1
Standard

wenn du das per ajax realisierst sollte das garnicht so schwer sein
einfach 1 script das 1 file hochlädt und per ajax $n mal ansprechen.

http://www.w3schools.com/Ajax/Default.Asp

is ein ganz gutes Einsteigetutorial für Ajax damit solltest du das eigentlich schnell hinkriegen.
b4ck ist offline   Mit Zitat antworten
Alt 09.03.09, 22:18   #4 (permalink)
404
 
Benutzerbild von 404
 
Registriert seit: 28.11.04
404 Leistung: Z3
404 eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
eine weitere Möglichkeit wäre AJAX... 5 Dateien parallel über 5 einzelne Requests auf den Server laden... mit AJAX hab ich aber selbst auch noch nicht so die Erfahrung.
Mit der Klassischen AJAX Lösung (XMLHttpRequest), wirst Du hier nicht weit kommen - da es nicht möglich ist damit Files hochzuladen. Mehr Infos unter /Ajax_(Programmierung)

Wenn Du die Files einzeln laden willst, wäre diese mit einer Javascirpt + Iframe Lösung möglich. (Formular wird mit dem target des Iframes abgeschickt, als Response ein Javascript das den Content des Hauptframes updated) Mit AJAX hat das dann allerdings nichts zu tun.
__________________
Major Fault, General Error and Colonel Panic came together to celebrate timeout.


------------------------------------------------
http://www.shick.de/
------------------------------------------------
404 ist offline   Mit Zitat antworten
Alt 28.04.09, 14:09   #5 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Habs mit
PHP-Code:
set_time_limit() 
gelöst und klappt einwandfrei

Danke !
reaLInsanity ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Upload läuft in Timeout
Themen-Optionen
Ansicht

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 sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Traceroute - Timeout JayJay Network · LAN, WAN, Firewalls 4 01.08.07 17:12
Newsletter Timeout webfreak (Web-) Design und webbasierte Sprachen 3 01.04.06 13:58
DMA timeout error ulu01 Linux/UNIX 14 03.05.05 16:54
Timeout-Problem paulk Windows 2 22.06.04 07:32
Connect()-Timeout typecast Code Kitchen 4 22.01.04 10:23


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61