Re: [PHP]ftp_get will nicht so wie ich es will
Code:
sollte "prinizipiell" funktionieren. evtl. macht das basename probleme.
function ftp_passthru($ftphandle,$filename,$tmppath) {
ftp_get($ftphandle,$tmppath.'/'.basename($filename),$filename,octdec("777")); header(Content-Type: application/x-download); readfile($tmppath.'/'.basename($filename)); unlink($tmppath.'/'.basename($filename)); } jetzt muss ich aber ganz schnell off, cu. Kontodaten kommen dann per PM. ;) |
Re: [PHP]ftp_get will nicht so wie ich es will
Ich habe jetzt folgendes gefunden:
Code:
Dies sollte eigentlich den Datei-Download-Dialog öffnen. Tut es aber leider nicht. das
<?php
$tp = tmpfile (); // get file as the tempfile created $result = @ftp_fget ( $fp, $tp, $newpath.'/'.$downloadfile, FTP_BINARY); // if the server sucessfully got the file if ( $result ) { header( "Content-Disposition: inline; filename=$newpath.'/'.$downloadfile\n\n"); header ( "Content-type: applicatation/download; name=\"$newpath.'/'.$downloadfile\"\n\n" ); rewind ( $tp ); fpassthru ( $tp ); die (); } ?>
Code:
ergibt zum Beispiel: /html/Ablage/02 Gipsy.jpg, sollte also stimmen. Ausgegeben wird aber nur eine leere Seite mit diesem Quelltext:
$newpath.'/'.$downloadfile
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> <BODY></BODY></HTML> |
Re: [PHP]ftp_get will nicht so wie ich es will
fseek($tp, 0, SEEK_SET); vor dem passthruen
|
Re: [PHP]ftp_get will nicht so wie ich es will
Code:
Änderert leider nichts an der Ausgabe.
<?php
$tp = tmpfile (); // get file as the tempfile created $result = @ftp_fget ( $fp, $tp, $newpath.'/'.$downloadfile, FTP_BINARY); // if the server sucessfully got the file if ( $result ) { header( "Content-Disposition: inline; filename=$newpath.'/'.$downloadfile\n\n"); header ( "Content-type: applicatation/download; name=\"$newpath.'/'.$downloadfile\"\n\n" ); rewind ( $tp ); fseek($tp, 0, SEEK_SET); fpassthru ( $tp ); die (); } ?>
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> <BODY></BODY></HTML> |
Re: [PHP]ftp_get will nicht so wie ich es will
kann es sein, dass dieses tmpfile() nicht fuer lesezugriff geoeffnet ist?
probier mal selber eins anzulegen (tempnam). ist $result wirklich === true? var_dump($result) vor dem if waere aufschlussreich |
Re: [PHP]ftp_get will nicht so wie ich es will
Zitat:
Hm, $result ist NULL. Und jetzt? |
Re: [PHP]ftp_get will nicht so wie ich es will
wenn result null ist, dann ist schon da oben der fehler. kontrolliere bitte alle parameter.
$result sollte eigentlich nur true oder false sein, niemals NULL... wundert mich. dich nicht? dieses tmpfile muss auch lesezugriff haben, sonst is asche mit fpassthru. |
Re: [PHP]ftp_get will nicht so wie ich es will
Ich habe vergessen vorher eine Verbindung zu dem FTP-Server aufzubauen. :oops:
|
Re: [PHP]ftp_get will nicht so wie ich es will
Zitat:
Zitat:
Jetzt noch einmal ausführlich von Jemandem, der seit ~3 Jahren richtig große Web-Applikationen mit PHP schreibt (> 50.000 Zeilen): Wenn du einen Form-Based-File-Upload machst, also
Code:
und man damit eine Datei auswählt und das Formular abschickt, dann wird der Inhalt der Datei zusammen mit der Anfrage an deinen Webserver geschickt. Die Datei ist also schon auf dem Server wenn dein Skript ausgeführt wird.
<form method="post" action="meinscript.php">
<input type="file" ...> </form> Die Funktion move_uploaded_file dient nur dazu, die dafür angelegte temporäre Datei an die endgültige Position zu verschieben. Darum bekommt diese Funktion als Parameter auch die Namen von zwei Dateien auf deinem Server und nicht den ersten von deinem lokalen Rechner. Wenn es anders nicht ginge, meinst du nicht dann gäbe es schon 1.000 Skripte für das, was du zu implementieren versuchst? Ich muss jetzt los - wenn du es immer noch nicht glaubst, dann schreibe ich dir nachher ein kleines Skript... @ripper8472: Bestärke ihn doch nicht noch in seinem Irrglauben, es ginge nur über eine FTP-Verbindung. |
Re: [PHP]ftp_get will nicht so wie ich es will
@FLocke: Ja, ich habe ihm das auch schon ein paar mal gesagt. Ich glaube, er glaubts mir inzwischen. ;) Im übrigen sind da doch ien paar nicht ganz saubere Sachen in deinem Post...
Code:
Hab hier ein paar Fehler ausgebessert. sollte so gehen, wenn du zuvor die FTP-Verbindung aufbaust und die Variablen setzt.
<?php
$tp = tmpfile (); // get file as the tempfile created $result = @ftp_fget ( $fp, $tp, $newpath.'/'.$downloadfile, FTP_BINARY); // if the server sucessfully got the file if ( $result ) { header ( "Content-Disposition: inline; filename=$downloadfile\n\n"); //der pfad ist ja wohl irrelevant header ( "Content-type: application/x-download" ); //fipptehler, ausserdem mal das filename zeuchs weggelassen. braucht man doch nicht zweimal. rewind ( $tp ); //nach rewind braucht man kein seek mehr fpassthru ( $tp ); flush(); //flush ist sauberer als die. } ?> Wie aus diesem Script die unten angegebenen Metas rauskommen sollen, ist mir aber schleierhaft. Ansonsten könntest du ja auch das von mir mal ausprobieren. Ich bin zwar kein Pro wie Flocke, aber trotzdem... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz