php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.10.2005, 10:31  
Gast
 
Beiträge: n/a
Standard Uploadscript - tmp_name immer leer trotz Auswahl

Tach

Irgendwie geht mein Uploadscript nicht. Die Ausgewählte Datei nimmt er nicht. Er sagt immer dass keine Datei ausgewählt wurde (also $_FILES['userfile']['tmp_name'] = leer). Aber warum ist das so? Ich finde keine Fehler in dem kleinen Script.

Hier der Code:
PHP-Code:
<?php
    error_reporting
(E_ALL);

    function 
print_files() {
        echo 
"<pre>";
        
print_r($_FILES);
        echo 
"</pre>\n";
    }

    if(isset(
$_GET['upload']) AND $_GET['upload'] == 'true') {
        
$uploaddir 'upload/';
        
$imgname   '3';
        
$imgtype   '.jpg';
        
$allowed = array("image/jpeg""image/jpg""image/pjpeg");
        if(empty(
$_FILES['userfile']['tmp_name'])) {
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files();
        } elseif(
in_array(strtolower($_FILES['bild']['type']), $allowed)) {
            echo 
"

\n"
;
            if (
move_uploaded_file($_FILES['bild']['tmp_name'], $uploaddir.$imgname.$imgtype)) {
                echo 
'<p class="message">Bild erfolgreich hochgeladen'."\n";
                
print_files();
            } else {
                echo 
'<p class="error">Fehler: Bild konnte nicht hochgeladen werden'."\n";

            }
        } else {
            echo 
"<p class=\"error\">Fehler: Bildtyp fehlerhaft!\n";
            
print_files();
        }
    } else {
        echo 
'<form action="fileupload.php?upload=true" method="post">         '."\n";
        echo 
'<table>                                                          '."\n";
        echo 
' <tr>                                                            '."\n";
        echo 
'  <td>                                                           '."\n";
        echo 
'       Bild                                                      '."\n";
        echo 
'  </td>                                                          '."\n";
        echo 
'  <td>                                                           '."\n";
        echo 
'       <input type="file" name="userfile">                       '."\n";
        echo 
'  </td>                                                          '."\n";
        echo 
' </tr>                                                           '."\n";
        echo 
'</table>                                                         '."\n";
        echo 
'<input type="submit" name="submit" value=" Bild hochladen ">     '."\n";
        echo 
'<input type="submit" name="reset"  value=" Zurücksetzen ">       '."\n";
        echo 
'</form>                                                          '."\n"
    }
?>
Hoffe ihr könnt mir weiterhelfen.
MFG HK
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.10.2005, 11:50  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

ich würde:
PHP-Code:
<?php
        
if(empty($_FILES['userfile']['tmp_name'])) {
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
?>
ersetzen durch:

PHP-Code:
<?php
        
if(empty($_FILES['userfile']['name'])) {
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
?>
sollte dan eigentlich funktionieren, und auch den Zweck erfüllen

man könnte es natürlich auch so lösen:
PHP-Code:
<?php
if ($_FILES['userfile']['name'] == ""){
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
}
?>
dsmcg ist offline  
Alt 25.10.2005, 11:59  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dsmcg
ich würde:
PHP-Code:
<?php
        
if(empty($_FILES['userfile']['tmp_name'])) {
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
?>
ersetzen durch:

PHP-Code:
<?php
        
if(empty($_FILES['userfile']['name'])) {
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
?>
sollte dan eigentlich funktionieren, und auch den Zweck erfüllen

man könnte es natürlich auch so lösen:
PHP-Code:
<?php
if ($_FILES['userfile']['name'] == ""){
            echo 
'<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
            
print_files(); 
}
?>
Probier ich mal, aber bei == "" müsste man dann auf isset kontrollieren.

Aber emty müsste gehen, da glaub ich die datei nicht 0 sein kann. Ist ja String und Pfad etc. Ich test ma danke
 
Alt 25.10.2005, 12:01  
Gast
 
Beiträge: n/a
Standard

ok geht schon mal nicht mit name.

Der hat den ganzen Array $_FILES leer. Da kann auch nichts kommen. Warum ist das so?

-->
Code:
Array
(
)
Ich dreh noch durch. Habs schon so oft gemacht, aber es klappt einfach nicht ...
 
Alt 25.10.2005, 12:16  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Dein Form-Tag benötigt den Parameter

PHP-Code:
enctype="multipart/form-data" 
Zergling-new ist offline  
Alt 25.10.2005, 13:18  
Gast
 
Beiträge: n/a
Standard

Hmpf *ankopffass* danke, ich wusste ich hab sowas simples vergessen. Lag daran
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tmp_name, $_files tmp_name empty, php file upload tmp_name empty, php upload tmp_name leer, tmp_name leer, _files tmp_name leer, php tmp_name empty, $_files tmp_name leer, php $_files tmp_name leer, php tmp_name leer, php file upload tmp_name leer, _files tmp_name empty, php $_files tmp_name empty, php bild tmp_name leer, php upload tmp_name empty, file upload tmp_name leer, php tmp_name, [\'tmp_name\'], php datei upload tmp_name leer, tmp_name empty

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.