Webviewer - Starthilfe



  • Ich bin beim rumspielen auf was (zumindest für mich) merkwürdiges gestoßen

    gebe ich die Bilder mit

    $fp = fopen( $g_tmp_img, "rwb" );
    fwrite($fp, $thumb_row['Thumbnail'] );
    fclose( $fp );
    $im = @imagecreatefromjpeg( $g_tmp_img );
    ImageJPEG( $im );
    ImageDestroy( $im );
    

    aus ist alles wunderbar. Sobald ich aber schon ein echo "<hr />"; nach jedem Bild mache, bzw. überhaupt irgedndwas mit echo in der Schleife ausgebe funktioniert die Bildausgabe nicht mehr 😕 .
    Ich denke mir fehlt da im Moment das grundlegende Verständnis.

    du legst eine Datei auf dem Server ab, und gibst im IMG-Tag direkt die entsprechende URL

    Die Variante ist bisher die einzige, die funktioniert. Was passiert dann eigentlich, wenn mehrere Scripte auf ein und die selbe Datei zugreifen (eines liest, das andere schreibt). Giebt es da keinen Ärger? Solche Anfragen werden doch sicher parallel verarbeitet.

    Eigentlich sollte man meist größere Datenmengen (wie die Bilddaten) eh eher nicht direkt in der DB speichern, sondern nur einen Pfad (und die Daten in einer Datei)
    

    Die Db war so nicht meine Idee, aber ich muß wohl damit leben :). Das sind nur die Thmbnails. Viel schlimmer ist, das die wirklichen Bilder tiffs sind, die ich vorher vermutlich mit 'nem kleine Java - Applet konvertieren muß, oder giebt es dafür 'ne schicke php - library. In Java ging das eigentlich ganz gut.

    Vielen Dank für Deine Geduld mit 'nem Web - Dilletanten wie mir 🙂



  • TheBigW schrieb:

    Was passiert dann eigentlich, wenn mehrere Scripte auf ein und die selbe Datei zugreifen (eines liest, das andere schreibt). Giebt es da keinen Ärger? Solche Anfragen werden doch sicher parallel verarbeitet.

    Falls du keine Dual und mehr Prozessor-Rechner hast und nicht gerade mehr Festplatten dann kann immer nur einer auf die Datei zugreifen. Der Festplattenkopf kann nicht zur gleichen Zeit an verscheidenen Stellen (anfang und irgendwo anderes in der Datei) sein.
    Hat aber nichts mit deinem Problem zu tun.
    Mach dir mal keine Sorgen das nicht mehrere Webuser auf eine Datei zugreifen können und überlasse solche Zugriffe den BS-Programmierer. Die müssen sich um Thread und Zeitfenster kümmern.

    BLOB-Daten in einer DB kosten sehr viel. Deshalb: lege die Dateien als File ab und speichere nur den Link



  • Ich weiß halt zu wenig, wie ein so ein Webserver sowas überhaupt verarbeitet.

    Wenn ich z.B. in einer Multithreading Anwendung in mehreren Threads an ein und der selben Datei Arbeite, dann kann es doch durchaus passieren, das ein Thread gerade eine Datei modifiziert, die ich mit einem anderen Thread gerade einlese (wenn ich beim synchronisieren nicht aufpasse 🙂 ), oder irre ich da.

    Aber wenn du mir sagst, das ich mich drauf verlassen kann, dann wirds schon stimmen.

    BLOB-Daten in einer DB kosten sehr viel. Deshalb: lege die Dateien als File >ab und speichere nur den Link

    Ist mir klar. Wie gesagt, die DB kommt nicht von mir und es werde auch nur kleine Thmbnails darin abgelegt. So oder so ich muß damit leben. Das ganze ist auch nicht als Weblösung geplant, sonder eher als Firmen/Kliniksinterner Bildbetrachter.



  • TheBigW schrieb:

    Sobald ich aber schon ein echo "<hr />"; nach jedem Bild mache, bzw. überhaupt irgedndwas mit echo in der Schleife ausgebe funktioniert die Bildausgabe nicht mehr 😕

    Das ist ganz logisch - du scheint da wohl noch etwas Verständnisprobleme bzgl. HTML zu haben 😉
    Bilder musst du immer per img-Tag einbinden, nie direkt die Bilddaten in der HTML-Seite ausgeben. als src kannst du dann im img-Tag entweder direkt die URL des Bildes angeben, oder eben ein Script, welches dann den Stream sendet 🙂



  • Danke, zumindest das ist mir jetzt klar. Aber ruckzuck das nächste Problem:

    Ich gebe jetzt die Thumbnails aus und will das Bild gleich als Link zu dem "richtigen" Bild benutzen. Leider funktioniert das:

    echo "<a href='".$HighResImgLink."' target='_blank'><img src='".$ThmbImage."' width=128 height=100 border=0 alt=".$ImgType."></a>";
    

    nur im IE und nicht im Mozilla. In $HighResImgLink steht der Pfad zum jeweilige Bild z.B.:

    file://///RSC015/D/Archive/4940O773_Vol1/Archive 4940O773/d00/d00/d00/Archive 4940O773 f00000002.jpg

    kopiere ich das ganze in die Adressleiste funzt es auch wunderbar. der Link wird unten in der Statusleiste auch korrekt angezeigt nur leider verweigert er hartnäckig darauf zu reagieren.



  • Du darfst im Web keine lokalen Pfade verwenden ⚠



  • Uhhm, tja sowas häßliches hab ich mir doch fast gedacht. D.h. ich muß tatsächlich die Datei von dem Ort, an dem Sie in der Datenbank liegt umkopieren in den Ordner meiner Page, um dann mittels URL darauf zugreifen zu können?
    Das wird ein ganz schönes Rumgewusel, da manche Bilder ganz schön groß sind.

    Auf die Idee mit den lokalen Pfaden wäre ich auch nicht gekommen, aber da das ganze ja keine wirkliche Web - Lösung werden soll wäre es halt sehr bequem/schnell gewesen, das einfach so umzusetzen.

    Das weitere Procedere wäre also, beim Klick auf das Thmbnail - Image ein Weiteres php - Script aufzurufen, was dann die Umkopiererei macht.



  • Entweder du überträgst die Daten eben direkt per Script, oder eben temporäre Datei, die du normal verlinkst 😉



  • Vielen Dank,

    durch Deine Hilfe ist das ganze schon ein gutes Stück vorangekommen. Das Anzeigen der Bilder übernimmt jetzt mein Java - Applet, da sowieso ein paar kleine Bildverarbeitungsfunktiönchen und zoomen der Bilder möglich sein sollte. Das Applet versteht ja auch lokale Pfade -> also bin ich erstmal fein raus :).



  • TheBigW schrieb:

    Das Applet versteht ja auch lokale Pfade -> also bin ich erstmal fein raus :).

    Wenn das Applet nachher auf dem Client läuft, kann es eigentlich auch keinen lokalen Server-Pfade verstehen 🙄


Anmelden zum Antworten