Datei vom Clientrechner öffnen

stephanl

Mitglied
Hi,

ich weiß, dass das unangenehm für den Client ist, aber ich möchte folgendes machen (ist ja auch nur zum Testen für mich): Ich möchte die datei A:\test.txt laden.

Zuerst dachte ich, dass vielleicht ich das Eingeben des Files überspringen kann, was aber nicht funktioniert bzw. was ich nicht hinbekommen habe.

Dann habe ich mit diesem Lösungsversuch angefangen: Ich nehme ein Uploadscript und setze statt copy fopen ein. Das geht aber nicht, er spricht nach der Auswahl der Datei zwar mein Diskettenlaufwerk an, aber er liest die Datei nicht :(

Bisher sieht mein Code wiefolgt aus:

PHP:
<html><body>

<?php 
$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 
if($type == "image/gif" && $type != "image/pjpeg") { 
$err[] = "Nur txt Dateien."; 
} 

$dat = fopen("$tempname","r");

echo"$dat";

?>

Wie kann ich die Eingabe per Formular verhindern und die Datei vorgeben? Und wo liegt der Fehler mit dem Lesen?

Danke schonmal

Stephan
 
Du kannst keine Dateien automatisch vom Clientrechner zum Server übertragen. Das wäre ja fatal! Du kannst auch nicht das Upload-Formular auf eine Datei voreinstellen und dann via JavaScript automatisch absenden. Besser ist es.

Du kommst also nicht umhin, dass der User die Datei selbst in das Formular eintragen muss.

Zum generellen Verständnis: Du kannst niemals über PHP direkt eine Datei auf dem Client-Rechner ansprechen. Der Benutzer muss die Datei selbst auswählen und schickt danach das Upload-Formular ab. Die ausgewählte Datei wird anschließend via HTTP-Upload verschickt und dem zu bearbeitenden PHP-Script mitgeteilt, wo die Datei temporär abgelegt wurde. Möchtest Du die Datei auf dem Server behalten, dann musst Du sie über copy() in ein anderes Verzeichnis Deiner Wahl kopieren, denn die temporäre Datei wird nach Ablauf des Scriptes automatisch wieder gelöscht.

Übrigens:
PHP:
if($type == "image/gif" && $type != "image/pjpeg") { 
$err[] = "Nur txt Dateien."; 
}
Wenn Du nur TXT-Dateien zulassen möchtest, dann ist es unklug dafür alle anderen Dateitypen auszuschließen. Des Weiteren ist nicht sichergestellt, dass der Browser den Mime-Type der Datei überhaupt übermittelt.

mfg, snuu
 
Zuletzt bearbeitet:
Zurück