XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   (X)HTML (http://xhtmlforum.de/forumdisplay.php?f=72)
-   -   Bilder lokal auslagern (http://xhtmlforum.de/showthread.php?t=68627)

Deniz 21.12.2012 14:47

Zitat:

Zitat von protonenbeschleuniger (Beitrag 524044)
Das macht der Browser doch sowieso schon, in dem er die Dateien im lokalen Cache speichert.

Aber nicht zuverlässig genug.

B2T:
Wie kann ich nun auf dem Client die Dateien ansprechen, die der Nutzer zuvor lokal installiert hat?

protonenbeschleuniger 21.12.2012 16:14

Zitat:

Zitat von Deniz (Beitrag 524045)
Aber nicht zuverlässig genug.

Wie kommst du darauf? Du hast es doch in der Hand, dem Browser mitzuteilen welche Dateien und wie lange er sie Cachen soll.

Deine zweite Frage verstehe ich nicht, du sprichst die Datei an, in dem du sie ansprichst. Der Browser holt die von alleine aus dem Cache.

lolDog 21.12.2012 19:59

So tut ihm doch den Gefallen und sagt es ihm, er wollte ja nicht über den Sinn diskutieren, wobei ich es mir auch nicht nehmen lassen will zu sagen das es sich irgendwie schwachsinnig anhört :)

Der User gibt den Wert in ein Input Feld ein. Das speicherst du dann beim User. Wenn der User eine Seite läd liest du den Wert aus und speicherst diesen in eine Variable, z.B. $imagePath. Wenn du keinen Wert hast kannst du ja einen Fallback Wert eintragen, so dass es wieder von deinem Server geladen wird.
Dein HTML sollte dann so aussehen:

Code:

<img="<?php echo $imagePath; ?>/pfad/zum/bild.jpg" alt="Alt Text" />
sollte der user einen falschen pfad angeben, sieht er die seite aber ohne bilder. eventuell kannst du per javascript einen fallback dafür einblenden, sicher bin ich mir da aber nicht, denn du müsstest ja dann auf der festplatte des users schauen ob er das bild hat oder nicht und ich kann mir nicht vorstellen das das funktioniert. es könnte höchstens sein das du den bildern keine höhen und breiten angabe gibst und dann mit javascript ausliest ob das bild die eigentlichen höhen und breiten hat, wenn nicht musst du alle src-attribute mit javascript ändern, dass der user die bilder wieder vom server läd.

das css müsstest du dann auch per php genereieren lassen solltest du hier auch bilder "verlinken". Du schreibst also eine php datei, die das css ausgibt und beim einbinden des css im html dann folgendes schreiben:
Code:

<style type="text/css" src="/pfad/zur/super/css/meinSuperCss.php"></style>
die css-php (/pfad/zur/super/css/meinSuperCss.php) könnte so aussehen
Code:

<?php
  $user = User::getCurrent();
  $imagePath = $user->getImagePath();
?>
body{
  background: url("<?php echo $imagePath; ?>/neues/bild.jpg");
}


protonenbeschleuniger 21.12.2012 20:49

Zitat:

Zitat von lolDog (Beitrag 524052)
So tut ihm doch den Gefallen und sagt es ihm,

Wir haben ihm alles gesagt, was es dazu zu sagen gibt.

Zitat:

Zitat von lolDog (Beitrag 524052)
Der User gibt den Wert in ein Input Feld ein. Das speicherst du dann beim User.

Darum ging es ihm nicht.

lolDog 22.12.2012 10:42

Schön das du die "Einleitung" zitierst und dann sagst, dass es um das nicht geht. Eventuell stehen auch noch weitere Sätze dahinter, die dann genau das erklären was er gerne wissen wollte.

Das wäre so als ob ich nur die Hälfte deines Satzes zitieren würde und dann sagen würde das ist aber kein kompletter Satz...

Ich denke dein Kommentar trifft eher auf die anderen Beiträge zu, bei denen ihr versucht dem User zu erklären das es nicht sinnvoll ist, denn genau das wollte er nicht. Was hat das Thema Cache damit zu tun wie man nun den src-Parameter des img-Tags schreibt?

protonenbeschleuniger 22.12.2012 11:19

Zitat:

Zitat von lolDog (Beitrag 524068)
Schön das du die "Einleitung" zitierst und dann sagst, dass es um das nicht geht. Eventuell stehen auch noch weitere Sätze dahinter, die dann genau das erklären was er gerne wissen wollte.

Das wäre so als ob ich nur die Hälfte deines Satzes zitieren würde und dann sagen würde das ist aber kein kompletter Satz...

Ich denke dein Kommentar trifft eher auf die anderen Beiträge zu, bei denen ihr versucht dem User zu erklären das es nicht sinnvoll ist, denn genau das wollte er nicht. Was hat das Thema Cache damit zu tun wie man nun den src-Parameter des img-Tags schreibt?

Er möchte Verzeichnisse und Dateien lokal auf dem Rechner des Users speichern, um sie zu Cachen, also quasi das Verhalten des Browsers nachbauen. Da er nicht weiß wie das Verzeichnis dann beim einzelnen User genau heißt, sucht er einen Weg den Pfad des lokalen Verzeichnis zu finden.

Das der User den Pfad angeben soll, wie du vorgeschlagen hat, hat er auch selbst schon gesagt und wenn es nur darum geht aus den Daten einen Pfad zusammen zu bauen, dann verstehe ich die ganze Problematik nicht, weil er das ja auch genau so geschildert hat

Zitat:

Beispiel:
Eine Content-Seite meines Projekts enthält ein Bild "bild.png" welches sich hier befindet:
"meinProjektVerzeichnis/gfx/bild.png"
Das Bild befindet sich nicht im Web, sondern beim Client selbst und durch den in der Datenbank gespeicherten Pfad wird dann im Quellcode z. B.
<img src="file:///C:\meinProjektVerzeichnis\gfx\bild.png">

Meine Frage hierbei ist nun, das ich nicht weiss, wie das src-Attribute nun aufgebaut werden muss.
Wenn es nur darum geht, den Wert des Projekverzeichniss in das src Attribut zu integrieren wäre das ganze (zumal für jemand der ein Browsergame programmiert) äußerst trivial.

Wie auch immer, dass ist ein Versuch den Cache des Browser nachzubauen, der unnötig ist.

lolDog 22.12.2012 12:51

Ich gebe dir in allen Punkten recht, nur hat er geschrieben: "Der Sinn darüber, soll hier nicht diskutiert werden"
Deswegen wollte ich ihm einfach mal seine Frage beantworten wie man es machen könnte.

Deniz 03.01.2013 16:36

Hallo zusammen,

danke für eure Antworten und ich wünsche allen ein frohes neues Jahr :)
Hatte über die Feiertage keine Zeit.

Zurück zu meinem Problem :)
Ich habe folgende Beispielseite online gestellt. Vielleicht habe ich mich bisher auch einfach nur falsch ausgedrückt:

Ich habe lokal auf irgendeinem PC mit Internet Zugang eine Bilddatei unter "C:\test.png".

Dieses Bild möchte ich nun auf folgender Internet-Seite eingebunden haben:
Bilder lokal auslagern

Zum Test habe ich dort ein paar Schreibweisen (des Lokalen Bildpfades) zu einem DIV-Container und einem IMG-Tag erstellt.
Dazu habe ich herausgefunden das diese Schreibweisen in folgenden Browsern untersützt wurden (= Lokales Bild wird angezeigt):


- IE 9: Kein IMG-Tag zeigt ein Lokales Bild an. Jedoch folgende DIV-Kombinationen
HTML-Code:

<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(c:\\test.png);"></div>
<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(c:/test.png);"></div>
<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(c://test.png);"></div>
<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(file:///c:/test.png);"></div>
<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(file:///c://test.png);"></div>
<div style="float: left; border: 1px solid red; width: 200px; height: 200px; background-image: url(file:///c:\\test.png);"></div>

- FireFox/Chrome: Weder ein IMG-Tag noch ein DIV-Container zeigt ein Lokales Bild an.

- Weitere Browser habe ich gar nicht erst getestet

protonenbeschleuniger 03.01.2013 17:00

Das sollte so gehen:
HTML-Code:

<img src="file:///C:/test.png">

lolDog 03.01.2013 20:31

So wie es aussieht funktioniert das ganze nicht, es scheint so als ob es eine Sicherheitsvorkehruzng des Browsers wäre.
Sonst wäre auch möglich irgendwelche Dateien über den Brwoser auf deinem PC auszulesen und das willst du ja auch nicht, wenn man sich mal ein wenig Gedanken drüber macht ist es auch sinnvoll das es nicht funktioniert. Du willst ja schließlich nicht das jemand Bilder aus deinem "Eigenen Ordner" einbinden, per JavaScript auswertet und irgendwohin schickt....
Als ich meine erste Antwort geschrieben hatte war mir das aber auch nicht so ganz klar, aber umso besser das das nicht funktioniert, so musst du wohl nun den gescheiten weg über den Browser-Cache gehen. Solltest du nicht wissen wie das ganze funktioniert kannst du es zum Beispiel hier nachlesen: HTTP: Allgemeine Header - HTMLWorld

Eine Möglichkeit gibt es aber noch allerdings die Daten lokal zu benutzen, in dem der User einen eigenen Webserver installiert und du die Daten dann zum Beispiel per http://localhost/bild.png einbindest, aber ich glaube nicht das die User lust haben extra einen Webserver für so etwas zu installieren.


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:52 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023