tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
354
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2002
    Beiträge
    983
    Hallo!

    ich habe mir einen kleinen CSV-Reader geschrieben, den ich über ein Upload-Formular mit einer Text-Datei füttere.
    Das Formular zum Upload sieht wie folgt aus:
    HTML-Code:
    <form action="csvreader.php" method="post" enctype="multipart/form-data" name="form1">
      <table  border="0" cellspacing="0" cellpadding="0" align="center">
        <tr>
          <td>EP - CSV - Datei: &nbsp;</td>
          <td><input type="file" name="file"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" class="button" value="Datei erzeugen >>"></td>
        </tr>
      </table>
    </form>
    Ich nutze die file()-Funktion, um die übergebene Datei zeilenweise einzulesen:
    PHP-Code:
    $name $_FILES['file']['name'];
    $zeile file($name);
    .... 
    weiterer Code -> Datei wird _NICHT_ auf den Server geladen
    Das ging auch die ganze Zeit wunderbar - nur als ich mir stolzgeschwellter Brust das Ergebnis meinem Chef zeigen will, erhalte ich folgenden Fehler:
    Code :
    1
    
    Warning: file(test_content.csv) [function.file]: failed to open stream: No such file or directory in F:\apachefriends\xampp\htdocs\www\emogress.de\shop\csvreader\csvreader.php on line 45
    wobei Zeile 45 die Zeile mit der file()-Funktion (s.o.) ist.
    Ich verstehe die Welt nicht mehr - kann mir nur vorstellen, dass es damit zusammenhängt, dass ich die Datei nicht auf den Server lade. Aber warum ging es dann vorher, ohne das sich an den Ausgangsbedingungen etwas geändert hat...?

    Ich hoffe, Ihr könnt mir auf die Sprünge helfen.

    Vielen Dank!
     
    Signatur nicht verfügbar.

  2. #2
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Hallo!

    Woran es lag, dass es vorher ging, kann ich zwar nicht sagen, allerdings dient die Funktion file ja dazu, eine Datei auf dem Server zu lesen.
    Wie soll das geschehen, wenn du die Datei nicht auf dem Server hast?

    Vielleicht ist in der Variablen $_FILES, die du auf deinem Testserver (davon gehe ich mal aus) hattest (oder genau genommen $_FILES['file']['name']) der Pfad auf dem Server gespeichert (ich kenn' die Variable $_FILE nicht mehr so genau - gedächtnis wie ein Sieb ) und auf deinem Testserver hattest du noch Zugriff auf die Datei, jetzt allerdings nicht mehr?! - Nur eine ganz vorsichtige Vermutung - kann also auch in die völlig falsche Richtung führen.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  3. #3
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    $_FILES['datei']['name'] beinhaltet den Originalnamender hochgeladenen Datei.
    Auf dem Server wird sie erstmal ins Uploadverzeichnis geladen und umbenannt.
    Den vorläufigen Dateinamen auf dem Server ermittelst du über $_FILES['datei']['tmp_name']


    Warum es vorher ging, kann ich mir nicht erklären.
     

  4. #4
    Registriert seit
    Nov 2002
    Beiträge
    983
    Vielen Dank erstmal für Eure Antworten.

    Ich habe das Ganze auch auf meinem Testserver vorgestellt (ich sagte ja, dass sich an den Rahmenbedingungen nichts geändert hat).
    Ich habe jetzt "$_FILES['file']['name']" mal gegen "$_FILES['file']['tmp_name']" getauscht und nun gehts.
    Um das Ganze wasserdicht zu machen, habt ich mir überlegt, die Datei vielleicht in den Ausgabebuffer zu laden. Ist so etwas sinnvoll? Wenn ja, wie setze ich da am geschicktesten an?

    Vielen Dank nochmal.
     
    Signatur nicht verfügbar.

  5. #5
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Hhmm...
    Stimmt, so langsam dämmerts wieder .
    Dann dürfte das Script ja eigentlich von Anfang an nicht richtig funktioniert haben.
    Hat des das Script absolut richtig funktioniert, oder wurde einfach nur keine Fehlermeldung angezeigt?
    Es sollte eigentlich nicht möglich sein, eine Datei zu lesen, die es nicht gibt (sofern diese nicht erstellt wird - was hier ja nicht der Fall ist). Deswegen könnte ich mir höchstens noch vorstellen, dass, wie gesagt, nur die Fehlermeldung nicht ausgegeben wird.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Wenn du die Datei später nicht mehr brauchst, kannst du sie da lassen, wo sie ist.
    Solange das Skript läuft, befindet sich die Datei auf dem Server.
    Ich wüsste auf Anhieb nichts, was dagegen spricht, über das Dateisystem drauf zuzugreifen.
     

Ähnliche Themen

  1. [C] Merkwürdiges CGI Problem
    Von soUrcerer im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 26.05.08, 18:32
  2. Merkwürdiges Material Problem
    Von Simon la Croix im Forum Cinema 4D
    Antworten: 12
    Letzter Beitrag: 22.01.08, 10:51
  3. Merkwürdiges Problem mit Bildeinbindung
    Von Moritz123 im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 06.04.05, 15:07
  4. Merkwürdiges Problem mit Dateiupload
    Von Moritz123 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 20.10.03, 19:29
  5. merkwürdiges problem
    Von Montz im Forum Flash Plattform
    Antworten: 13
    Letzter Beitrag: 15.06.01, 22:46