UploadScript funktioniert nicht - keine Fehlermeldung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo zusammen. Seit längerem versuche ich ein Uploadscrip für mein Page zum laufen zu bringen. Leider bis anhin ohne erfol. Mein Scrip sieht aktull so aus.

    Quellcode

    1. if ($_FILES['datei']['error'])
    2. {
    3. $error .= "<li>Allgemeiner Fehler</li>";
    4. }
    5. if ($_FILES['datei']['size'] > 10240)
    6. {
    7. $error .= "<li>Datei zu größ</li>";
    8. }
    9. /*if ($_FILES['datei']['type'] != 'image/jpeg')
    10. {
    11. $error .= "<li>Faslches Dateiformat</li>";
    12. }
    13. */
    14. if(isset($error))
    15. {
    16. echo $error;
    17. } else {
    18. $filename = $_FILES['datei']['name'];
    19. $dir='upload/';
    20. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);
    21. }
    Alles anzeigen


    Das Problem ist kurz umschrieb: Es passiert uberhaupt nichts. Weder wird eine Dati irgendwo hochgeladen, noch erscheint eine Fehlermeldung oder Uploadbstätigung. Was mach ich falsch?
  • Könnte mal jemand von euch mein Script austesten und die Erfahrungen reinschreiben?

    Quellcode

    1. <form name="linknew" method="post" action="../bildupload/berichtebildnewverarbeitung.php" enctype="multipart/form-data">
    2. <table width="690" border="0" cellspacing="0" cellpadding="0">
    3. <tr>
    4. <td width="112" height="38">Bild:<font color="#FF0000">*</font></td>
    5. <td width="578"><p>
    6. <input type="file" name="datei">
    7. </p>
    8. </td>
    9. </tr>
    10. <tr>


    Quellcode

    1. if ($_FILES['datei']['error'])
    2. {
    3. $error .= "<li>Allgemeiner Fehler</li>";
    4. }
    5. if ($_FILES['datei']['size'] > 10240000)
    6. {
    7. $error .= "<li>Datei zu größ</li>";
    8. }
    9. if ($_FILES['datei']['type'] != 'image/jpeg')
    10. {
    11. $error .= "<li>Faslches Dateiformat</li>";
    12. }
    13. if(isset($error))
    14. {
    15. echo $error;
    16. } else {
    17. $filename = $_FILES['datei']['name'];
    18. $dir='../upload';
    19. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);
    20. }
    Alles anzeigen
  • dein teilscript ist schon vollkommen richtig..
    geb uns mal den ganzen code..

    die einfachen fehler wie
    - weiteres, umgebendes <form> tag
    - falscher zielpfad
    kann man ja ausschließen
    aber ist vielleicht ein weiteres formular-element mit dem namen "datei" vorhanden?

    schöpfe erstmal aus, was du so abfangen kannst

    Quellcode

    1. print_r($_FILES['datei']);
    gibt schon viele informationen (u.a. $_FILES['datei']['error'])
    ansonsten halt die is_uploaded_file() funktion

    PS: Hier nochmal die doku seite dazu [phpdoc]features.file-upload[/phpdoc]
  • Es kann auch sein, dass du die Datei per FTP nicht sehen kannst! Versuch mal den WebFTP deines Hosters.
    Dann kannst du per [phpdoc]chmod[/phpdoc] und [phpdoc]chown[/phpdoc] neue Rechte und Owner setzten.

    Oder schau seperat per [phpdoc]file_exists[/phpdoc] ob die Datei existiert.
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Nun krieg ich wenigstens eine Fehlermeldung:

    Warning: move_uploaded_file(..upload/ambu2.jpg): failed to open stream: No such file or directory in /ho.....rarbeitung.php on line 93

    Warning: move_uploaded_file(): Unable to move '/home/www/web531/phptmp/phprKmlls' to '..upload/ambu2.jpg' in /home/www......verarbeitung.php on line 93

    An was könnte es jetzt noch liegen?
  • nenn uns mal deine ordnerstruktur.. so müsste sie aussehen - korrekt?

    root/ordner/berichtebildnew.php
    root/bildupload/berichtebildnewverarbeitung.php
    root/upload/xxx.txt

    falls nein, musst du dein script korrigieren, falls ja, dann füg in berichtebildnewverarbeitung.php hinter $dir='../upload'; mal folgendes ein:

    Quellcode

    1. if(!is_dir($dir))
    2. mkdir($dir, 0777);
  • Also meine Ordernstrucktur sieht so aus:

    ../bildupload/berichtebildnew.php
    ../bildupload/berichtevildnewverarbeitung.php
    ../bildupload/upload/hochgeladenesbild.jpg

    Wo muss ich denn das Script ändern? sehen den Fehler nicht wirklich.
    Das mit dem Hoster kläre ich auch noch ab.

    EDIT: Habe da mit dem Hoster abgeklärt. Von ihrer Seite besteht also keine Probleme.
  • ../bildupload/berichtevildnewverarbeitung.php
    ../bildupload/upload/hochgeladenesbild.jpg


    und hier dein original:

    Quellcode

    1. $filename = $_FILES['datei']['name'];
    2. $dir='../upload';
    3. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);

    mit ../ gehst du einen ordner nach oben..
    du musst jedoch im aktuellen ordner bleiben.. also entferne mal den einen punkt, dass es am ende so aussieht

    Quellcode

    1. $dir='./upload';
  • Also Zufälle gibts... Jetzt habe ich doch heute Geburtstag und genau heute funktioniert das Script. Vielen Dank für die wertvollen Hinweise an alle die mir geholfen haben. Ich bin euch wirklich sehr dankbar.

    Übrigens: es lag daran, dass ich ../ anstatt ./ verwendet habe.

    Und noch was an alle die ähnliche Probleme haben: Die Datei wird mit FTP erst nach einem erneuten Login angezeigt.
  • na dann herzlichen glückwunsch zum geburtstag!

    zur anzeige der datei:
    das hängt ganz vom programm ab
    manche programme aktualisieren automatisch
    andere aktualisieren jedes, wenn du den ordner neu öffnest
    andere aktualisieren erst, wenn du dich komplett neu anmeldest

    pauschal kannst du das also nicht sagen.
    aber garantiert hat jedes programm einen "aktualisieren"-button, mit dem du den ordnerinhalt im zweifelsfall neu laden kannst
  • "muwi" schrieb:

    Und noch was an alle die ähnliche Probleme haben: Die Datei wird mit FTP erst nach einem erneuten Login angezeigt.

    Ja, ab dem Punkt kann es auch sein, dass du alle neuen ULs (reload nicht vergessen) angezeigt bekommst.

    btw, herzlichen Glückwunsch! ;)
    Weiter so! ^^
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.