Seite 1 von 1

Externe Datei mit php auf den Webserver laden?

Verfasst: 07.05.2004 14:54
von RusTin
Hi,
Kann man das realisieren? Wenn ja wie?

Verfasst: 07.05.2004 15:25
von QCO

Code: Alles auswählen


$file = file_get_contents('http://www.server.de/datei.txt');
$fp = fopen('lokale_datei', 'w');

$result = @fputs($fp, $file, strlen($file));

@fclose($fp);

Verfasst: 07.05.2004 17:48
von RusTin

Code: Alles auswählen

Fatal error: Call to undefined function: file_get_contents()
hmm...

was soll eigentlich das:

Code: Alles auswählen

$fp = fopen('lokale_datei', 'w'); 

Verfasst: 07.05.2004 19:14
von QCO
Also die Funktion heißt wirklich file_get_contents und ist seit PHP 4.3 Standard.
Wenn du eine ältere PHP-Version hast, kannst du das Script verwenden.

Sämtliche Funktionen sind hier im PHP-Manual dokumentiert.

Mit fopen wird hier eine Datei zum Schreiben geöffnet.

Wenn du das nicht willst, solltest du mal noch einen Halbsatz mehr schreiben, was du eigentlich machen willst.

Verfasst: 07.05.2004 22:10
von Microfire
Weis zwar auch net, was du genau meinst, aber warscheinlich so was:

Code: Alles auswählen

<?php

$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this =  "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "upload_files/";
$upload_url = $url_dir."/upload_files/";
$message ="";

//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("upload_files")) {
	die ("<b>Fehler: <i>upload_files Verzeichnis ist nicht angelegt.</i></b>");
}

if ($_FILES['userfile']) {
	$message = do_upload($upload_dir, $upload_url);
}
else {
	$message = "";
}

print $message;

function do_upload($upload_dir, $upload_url) {

	$temp_name = $_FILES['userfile']['tmp_name'];
	$file_name = $_FILES['userfile']['name'];
	$file_type = $_FILES['userfile']['type'];
	$file_size = $_FILES['userfile']['size'];
	$result    = $_FILES['userfile']['error'];
	$file_url  = $upload_url.$file_name;
	$file_path = $upload_dir.$file_name;

	//File Name Check
    if ( $file_name =="") {
    	$message = "<b>Fehler: <i>Keine Datei angegeben.</i></b>";
    	return $message;
    }
    //File Size Check
    else if ( $file_size > 500000) {
        $message = "<b>Fehler: <i>Die Datei darf nicht größer als 500KB sein.</i></b>";
        return $message;
    }
    //File Type Check
    //else if ( $file_type == "text/plain" ) {
    //    $message = "Sorry, You cannot upload any script file" ;
    //    return $message;
    //}

    $result  =  move_uploaded_file($temp_name, $file_path);
    $message = ($result)?"<b>Upload erfolgreich.<br><i>URL der Datei: <a href=$file_url>$file_url</a></i></b>" :
    	      "<b>Fehler: <i>Beim hochladen der Datei ist ein unbekannter Fehler aufgetreten.</i></b>";

    return $message;
}
?>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
<input type="file" id="userfile" name="userfile">
<input type="submit" name="upload" value="Upload">
</form>

Verfasst: 08.05.2004 00:10
von PhilippK
Schau dir mal die ./includes/usercp_avatar.php von phpBB an. Dort gibt's 'ne Funktion user_avatar_upload(), die u.a. auch den Avatar von 'ner externen URL lädt. Interessant wird's dabei nach

Code: Alles auswählen

	if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, $url_ary) )
Gruß, Philipp

Verfasst: 08.05.2004 08:00
von RusTin
stimmt an phpBB dachte ich gar nicht :oops:
Na ich will einfach nur, dass das Script von einer URL die Datei auf den Webserver (also in den Ordner von sich selbst) lädt.

Code: Alles auswählen

$fp = fopen('lokale_datei', 'w'); 
ich wollte fragen was "lokale_datei" bedeutet, der Name der Datei nachher?

Verfasst: 08.05.2004 09:30
von QCO
RusTin hat geschrieben:ich wollte fragen was "lokale_datei" bedeutet, der Name der Datei nachher?
Ja. Dort kannst/sollst du den Namen der Datein einsetzen, mit dem sie auf deinen Webserver geschrieben wird.

Verfasst: 08.05.2004 13:37
von RusTin
also bei QCO's Möglichkeit kommt leider nur ne leere Datei :(
Bei dem phpBB Code blick ich nicht durch :o