PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Remoteuploadscript



pwitte01
04.03.2010, 12:48
Hallo Leute ich brauche ein Remoteuploadscript, dass wenn ich den exekten Downloadlink eingeb dies die Datei automatisch auf meinen Webspace herunterlädt
Beispiel:
Ich habe den exakten Downloadlink von einer Software welche auf Chip zum herunterladen ist. Ich gebe nun den Downloadlink in das Script ein und dies lädt mir die Datei automatisch auf meinen Webspace ohne Zwischenspeicherung der Datei auf dem lokalen Rechner.

Hier mal mein Ansatz:

<html>
<body>
<form enctype="multipart/form-data" action="remoteupload.php" method="post">
<p>Dateiname: <input type="text" name="dateiname" /><br />Datei:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <input type="file" name="upfile" /></p>
<p><input type="submit" value="Download" /></p>
</form>
</body>
</html>
<?php
// Dateiendung extrahieren
$dname = explode('.',$_FILES['upfile']['name']);
$dnamesize = count($dname);
$upfile_ext = $dname[$dnamesize-1];

$datei = $_POST["dateiname"].".".$upfile_ext;

if ($_FILES['upfile']['size']>0)
{
copy($_FILES['upfile']['tmp_name'],$datei);
echo "Datei wurde hochgeladen";
}
else
{
echo "Es ist ein Fehler aufgetreten";
}
?>Das obige Script ist das Grundgerüst was eine Datei vom lokalen PC auf den Server hochlädt. Wie bekomme ich es hin dass der lokale PC durch den Downloadlink erstezt wird.
Ich hoffe ihr könnt mir hier helfen=)

LG

moppelito
04.03.2010, 13:21
Dafür musst du auf deinem rechner Port 80 Freigeben, und dir mit Apache einen HTTP Server erstellen, in das tust du die Datei rein, und gibst deine ip an mit Pfad!

EDIT: waru nicht die Daten über FTP hochladen?

fred777
04.03.2010, 13:24
Oder z.B. bei Linux einfach wget wrappen.

0x30
04.03.2010, 13:35
Dafür musst du auf deinem rechner Port 80 Freigeben, und dir mit Apache einen HTTP Server erstellen, in das tust du die Datei rein, und gibst deine ip an mit Pfad!

EDIT: waru nicht die Daten über FTP hochladen?
Jetzt mal ehrlich. Hast du gelesen was er will? Dann sind deine Lösungsvorschlage nicht wirklich das was er braucht.

pwitte01
04.03.2010, 14:54
Die lösungsvorschläge sind nicht das was ich suche.
ich hätte gern die möglichkeit über ein formularelement den http downloadlink einzugeben und dieses script downlaodet mir die file auf meinen Webspace
der Lokale Rechner soll diese Aufgabe nicht durchführen sondern der Webspace(Webserver).

echoslider
05.03.2010, 04:39
ich hatte auch mal nen filehoster programmiert... nur keine lust mehr den on zu lassen... und keine zeit. ich hab das von nem link mit

http://php.net/manual/de/function.file-get-contents.php

geladen. du kannst die gesammte datei in eine variable speichern damit.und dann über php ftp wo hochgeladen

http://www.php.net/manual/de/function.ftp-fput.php

Barbers
05.03.2010, 06:54
die einfachste lösung wäre hier wirklich system("wget <url>");
sonnst könnte man noch nen socket aufmachen usw., es gibt viele wege nach rom ^^
falls du den source net hinbekommst schreib mir ne pm und ich bastel dir nen kleinen wenn ich zeit finde.

echoslider
06.03.2010, 22:30
wget nette idee... hatte ich auch früher dran gedacht. aber ist nicht so toll. müssen ja system befehle über php ausgeführt werden.. eventuelle sicherheitslücke. vielleicht hostet er noch webseiten von anderen. die können dann auch system befehle absetzen.

meins ist das beste. es funktioniert auch. allerdings muss man noch etwas setzen bei meinem weg.. vergessen..


ignore_user_abort(true);
set_time_limit(0);

nur der browser gerät dann in so ne art schlafmodus. du musst den browser unbedingt irgendwie wach halten. z.b mit nem iframe und nem upload balken.

für upload statusbar kannste mit ftp_size die datei größe ermitteln und dann die ftp verbindung wieder schließen und das alle kp 3 sekunden wiederholen mit meta refresh



das ganze mit ftp brauchst du nicht wirklich machen... ist nur besser... falls dus mal woanders hin uppen willst... bzw "flashen" heißt das. braucht man dafür das man nen server anweist daten von nem anderen server zu laden ohne das der befehls geber pc direkt dran beteiligt ist.

pwitte01
07.03.2010, 15:22
könnt ihr mir mal en fertigen quellcode posten ich bekomm das irwie ne hin ... wär euch echt dankbar

echoslider
08.03.2010, 19:19
<?php
ignore_user_abort(true);
//set_time_limit(0);

if(isset($_GET['url']) && $_GET['url']!="")
{
$file=file_get_contents($_GET['url']);
$name=basename($_GET['url']);

$target = fopen($name, 'w+');
fwrite($target, $file);
fclose($target);

}
?>

pwitte01
09.03.2010, 15:18
danke funktioniert bestens