Zum Inhalt springen

mirror download?!


Empfohlene Beiträge

Hallo, ich habe eine frage und zwar möchte ich zb. auf meiner Homepage eine datei zum download bereitsstellen (fotos.rar)

nun soll aber jeder besucher der die datei runterladen möchte eine züfällige download quelle bekommen.

sagen wir mal ich hätte 5 dowload quellen und jeder neue besucher würde durch zufall ein andere quelle bekommen. wie kann ich das realisieren?

ich hab mir gedacht 5 html seiten zumachen mit jeweils einer weiterleitung zu einer quelle und per php eine zufalls abfrage zu starten?!

vielen dank schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du machst eine php-Seite mit Weiterleitung zur Downloadquelle und eine Liste mit verschiedenen Quellen. Dann ermittelst du durch Zufall eine Quelle und die wird in der Seite angezeigt.

Ganz grob:


// Quellliste
$liste = array("server1/photos.rar", "server2/photos.rar", "server3/photos.rar");
// Zufallsquelle ermitteln
$index = rand(0, 2);
//*** Ausgabe
echo "Zum Download klicken Sie bitte <a href=\".$liste[$index]."\">hier</a>";

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Falls die Anführungszeichen nicht mit zum Link gehören sollen, müsste das so lauten:


echo "Zum Download klicken Sie bitte \"<a href=\"$liste[$index]\">hier</a>\"";

//bzw in anderer Schreibweise so:

echo 'Zum Download klicken Sie bitte "<a href="'.$liste[$index].'">hier</a>"';
[/PHP]

Wenn du das was ausgegeben werden soll mit " " umfasst, dann musst du bestimmte Zeichen, wie z.B. alle weiteren ", die als Text ausgegeben werden sollen, mit einem \ davor maskieren.

Wenn du einfache Anführungszeichen stattdessen benutzt, kannst du die " einfach so benutzen, musst jedoch die Variabel ausserhalb der ' ' haben, da diese sonst so ausgegeben wird wie es dort steht und nicht interpretiert wird.

Falls die Anführungszeichen zum Link mit dazu gehören sollen, dann wäre das

[PHP]
echo "Zum Download klicken Sie bitte <a href=\"$liste[$index]\">\"hier\"</a>";

//bzw in anderer Schreibweise so:

echo 'Zum Download klicken Sie bitte <a href="'.$liste[$index].'">"hier"</a>';

Wenn du " " benutzt statt ' ' kannst du die Variable zwar auch statt direkt im Text "auslagern" mit dem Punkt, musst du aber nicht, da es bei doppelten Anführungszeichen interpretiert wird.

Um mehrere Dateien damit verwenden zu können, musst du doch nur ein neues Array hinzufügen und halt das entsprechende Array dann nehmen.


// Quellliste
$liste1 = array("server1/photos.rar", "server2/photos.rar", "server3/photos.rar");
$liste2 = array("server1/foo.rar", "server2/foo.rar", "server3/foo.rar");
// Zufallsquelle ermitteln
$index = rand(0, 2);
//*** Ausgabe
echo "Zum Download von photos.rar klicken Sie bitte <a href=\"$liste1[$index]\">hier</a><br>"; //<-- Datei 1
echo "Zum Download von foo.rar klicken Sie bitte <a href=\".$liste2[$index]\">hier</a><br>"; //<-- Datei 2
[/PHP]

P.S.:

Wenn du das schon als kompliziert empfindest, dann viel Spass bei komplexeren Sachen. ;)

Bearbeitet von Crash2001
Link zu diesem Kommentar
Auf anderen Seiten teilen

Falls die Anführungszeichen nicht mit zum Link gehören sollen, müsste das so lauten:

Ich glaube mit Arrays funktioniert die auflösung von Variablen in "-Strings aber nicht. Also

echo "$bla";

geht.

echo "$bla[0]";

wirft einen Fehler AFAIK.

Das müsste dann glaube ich

echo "{$bla[0]}";

geschrieben werden, aber bei Arrays hab ich immer die Verkettung genommen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Falls die Anführungszeichen nicht mit zum Link gehören sollen, müsste das so lauten:


echo "Zum Download klicken Sie bitte \"<a href=\"$liste[$index]\">hier</a>\"";

//bzw in anderer Schreibweise so:

echo 'Zum Download klicken Sie bitte "<a href="'.$liste[$index].'">hier</a>"';
[/PHP]

Wenn du das was ausgegeben werden soll mit " " umfasst, dann musst du bestimmte Zeichen, wie z.B. alle weiteren ", die als Text ausgegeben werden sollen, mit einem \ davor maskieren.

Wenn du einfache Anführungszeichen stattdessen benutzt, kannst du die " einfach so benutzen, musst jedoch die Variabel ausserhalb der ' ' haben, da diese sonst so ausgegeben wird wie es dort steht und nicht interpretiert wird.

Falls die Anführungszeichen zum Link mit dazu gehören sollen, dann wäre das

[PHP]
echo "Zum Download klicken Sie bitte <a href=\"$liste[$index]\">\"hier\"</a>";

//bzw in anderer Schreibweise so:

echo 'Zum Download klicken Sie bitte <a href="'.$liste[$index].'">"hier"</a>';

Wenn du " " benutzt statt ' ' kannst du die Variable zwar auch statt direkt im Text "auslagern" mit dem Punkt, musst du aber nicht, da es bei doppelten Anführungszeichen interpretiert wird.

Um mehrere Dateien damit verwenden zu können, musst du doch nur ein neues Array hinzufügen und halt das entsprechende Array dann nehmen.


// Quellliste
$liste1 = array("server1/photos.rar", "server2/photos.rar", "server3/photos.rar");
$liste2 = array("server1/foo.rar", "server2/foo.rar", "server3/foo.rar");
// Zufallsquelle ermitteln
$index = rand(0, 2);
//*** Ausgabe
echo "Zum Download von photos.rar klicken Sie bitte <a href=\"$liste1[$index]\">hier</a><br>"; //<-- Datei 1
echo "Zum Download von foo.rar klicken Sie bitte <a href=\".$liste2[$index]\">hier</a><br>"; //<-- Datei 2
[/PHP]

P.S.:

Wenn du das schon als kompliziert empfindest, dann viel Spass bei komplexeren Sachen. ;)

Mir gefällt das 2te mit mehreren dateien auch ganz gut.

mal mein beispiel:

ich habe

datei 1

datei 2

datei 3

datei 4

datei 5

datei 6

nun würde man beim 2ten beispiel alle sehen (bitte klicken sie hier) das wird trotzdem ausgegeben obwohl ich nur datei1 möchte!?

kann ich das so lösen wenn ich auf datei 1 klicke in der weiterleitung auch nur diese sehe?

ich hoffe ihr wisst was ich meine?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du hast ja da bisher nirgends ausgewählt, welche Datei du willst, sondern das ist quasi nur die Übersicht.

Klar kannst du das auch so machen, dass du eine Auswahl machst und wenn man da auf Datei1 klickt, man weitergeleitet wird auf eine neue Seite, wo dann der Link zum Download erscheint, oder bei der der Download automatisch startet. Wenn du das direkt auf der Seite ohne Reload haben willst, musst du z.B. mit JavaScript arbeiten, oder halt eine andere Sprache nutzen, die clientseitig ausgeführt wird.

Stichwort wäre hier z.B. AJAX oder WEB2.0

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, erstma vielen dank für eure hilfe, ich bin nur schon recht weit ein problem habe ich aber nun und zwar wenn ich auf download klicke schreibt es es so!?

http://192.168.234.12/page/192.168.1.21\photos.rar

es sollte aber so werden \\192.168.1.21\photos.rar

er merkt sich ständig das http://192.168.234.12/page ? wie bekomme ich das weg?

Link zu diesem Kommentar
Auf anderen Seiten teilen

es sollte aber so werden \\192.168.1.21\photos.rar

Das ist aber nur die Windows-Version der Angabe. Wenn du dir URLs ansiehst, wirst du merken dass es da immer andersrum ist. Deswegen setzt der Browser eigentlich immer die Links mit / um. Bei Windows funktioniert aber auch ein file://pfad/zum/file.

Wieso soll es bei dir andersrum ausgegeben werden?

Nachtrag:

Achso, du hast ja 2mal den Server drin. Das wird daherkommen, dass der Browser den Link als relativ erkennt und deswegen die absolute URL ergänzt. Ohne Angabe nimmt er die vom Server, du kannst das aber auch mit BaseURL (oder so) festlegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

mh?!

ich habs nun mal so versucht aber das funktionier nicht

echo "Zum Download klicken Sie bitte <a href=\"$liste1[$index]\">hier target="_blank"></a><br>";

und die liste ist so:

$liste10 = array("192.168.1.21\fotos.rar", "192.168.1.22\fotos.rar");
Bearbeitet von =o-n-e=
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmmm... einmal $liste10 und einmal $liste1[$index] ? :confused:

Wie du das gemacht hast, würde dir ja auch nur beim Klick darauf ein neues Fenster öffnen.

Läuft auf dem zweiten und dritten Rechner (ist ja nicht der lokale, wo die Files drauf liegen) denn überhaupt ein Webserver?

Und 192.168.1.21\fotos.rar ist eine Angabe, die schon mal gar nicht gehen kann. Da fehlt Protokolltyp davor und so nimmt er an, dass das ein verzeichnis vom Document_Root aus wäre.

Du brauchst den Pfad vom Document_Root des Webserver aus auf die Datei, oder alternativ einen anderen Link auf die Ressource (ftp, http, https, ...). Alternativ geht natürlich auch ein relativer Link, falls das auf der lokalen Maschine liegen würde.

Bearbeitet von Crash2001
Link zu diesem Kommentar
Auf anderen Seiten teilen

ich will die seite im lokalen intranet bereitstellen, auf den anderen maschinen läuft kein webserver sonder lediglich eine windows freigabe.

wenn ich im browser die ip, order und datei aufrufe komme ich doch auch an die freigabe dran. so habe ich es hier auch vor.

\\192.168.1.21

wäre im browser doch so

file://///192.168.1.21/

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich will die seite im lokalen intranet bereitstellen

Jetzt frag ich mich aber, warum du im lokalen Intranet etliche Download-Mirror aufbauen willst? Erwartest du soviele zig tausend Zugriffe pro Minute? An der Bandbreite ändert sich nichts, da es eh lokal über dasselbe Netz geht. Allein die Serverlast kann da ein Grund sein, aber eigentlich sollte ein Fileserver schon für etliche Zugriffe ausgelegt sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

abgesehen davon, dass das keine gültigen UNC-pfade sind (der name des share fehlt), erschliesst sich mir nicht, warum man auf einigermassen modernen intranets soetwas benötigt. ist das rar-file denn so gross und greifen da hunderte leute gleichzeitig drauf zu? wenn die (angenommenen drei) server im gleichen segment hängen, erspart das auch keine leitungskapazität.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich vermute jetzt einfach mal, es handelt sich dabei um Photos vom letzten Betriebsausflug und es sieht einfach cooler aus, wenn da so eine Mirrorumleitung (wie bei Sourceforge o.ä.) davor kommt. Was die Sekretärin 2 Zimmer weiter wohl absolut nicht interessieren wird, aber naja ;)

Insgesamt lernt er ja (hoffentlich) was bei der Sache, und das ist die Hauptsache.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...