Probleme beim Anzeigen von JPG

Alles, was PHP betrifft, kann hier besprochen werden.

Probleme beim Anzeigen von JPG

Postby casig » 01. March 2011 20:29

Moin moin,
ein Jpg wird zwecks Farbanalyse mittels PHP upgeloaded. Zur Veranschaulichung soll die Grafik aber auch beim Client angezeigt werden. Unsinnig aber, erst up- dann downzuloaden. Deshalb soll der Pfad nach Dateiauswahl über Formularfeld "datei" über JS an "pfad" übergeben werden:
<form onsubmit="return(this.pfad.value=this.datei.value)" method="post" enctype="multipart/form-data" action="COLORofIMAGE.php">
<input style="WIDTH=600" type="file" name="datei">
<input type="hidden" name="pfad">

$pfad=$_POST['pfad']; $datei=$_FILES['datei']['name'];
echo $pfad."<br>";
die Ausgabe von $pfad ergibt: C:\\Users\\Public\\Pictures\\grau.jpg

Durch die doppelten Backslashes hat src einen ungültigen Inhalt, Bild wird also nicht angezeigt.
PHP: echo '<br><img name="'.$datei.'" onmousedown = "WhichPixel()" src="file://'.$pfad.'">';
Quellcode: <img name="grau.jpg" onmousedown = "WhichPixel()" src="file://C:\\Users\\Public\\Pictures\\grau.jpg">

Wie kommen die doppelten Backslashes in den String (IE7)? Läßt sich vielleicht aus $_FILES der lokale Pfad herauslesen?
Gruß und Dank
casig
 
Posts: 20
Joined: 19. October 2010 18:02

Re: Probleme beim Anzeigen von JPG

Postby WilliL » 01. March 2011 21:33

casig wrote:Durch die doppelten Backslashes hat src einen ungültigen Inhalt, Bild wird also nicht angezeigt.
PHP: echo '<br><img name="'.$datei.'" onmousedown = "WhichPixel()" src="file://'.$pfad.'">';
Quellcode: <img name="grau.jpg" onmousedown = "WhichPixel()" src="file://C:\\Users\\Public\\Pictures\\grau.jpg">

hier müsste nicht der physikalische Pfad, sondern der Link stehen, da der Browser mit dem physikalischen Pfad nichts anfangen kann:
Quellcode: <img name="http://Public/Pictures/grau.jpg" onmousedown = "WhichPixel()">
wirst du also eh umformen müssen (z.B. mit stristr() oder explode())
es sollte auch der header( 'Content-type: image/jpeg' ); in "COLORofIMAGE.php" gesetzt werden, damit der Browser weiß, was er erhält
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: Probleme beim Anzeigen von JPG

Postby casig » 02. March 2011 18:42

Moin moin
Willi, Dein Hinweis (Notation http:// statt file://) hat leider nicht funktioniert.

Mit HTML-Editoren wie z. B. MSScriptEditor wird im Übrigen auch die Notation file:// + Pfad benutzt. Die Anzeige des Bildes funktioniert, wenn ich den Quellcode als HTML-Document abspeichere und aufrufe, der Browser kann also mit doppelten Backslashes umgehen. Beim Aufruf über das Script wird dagegen nur der Platzhalter (Kästchen mit je einem kleinen Dreieck, Quadrat und Kreis) angezeigt, ohne jegliche Fehlermeldung. Im Kontextmenü kann "Bild anzeigen" angeklickt werden. Doch leider passiert nichts. Welche Bedeutung hat dieses spezielle Symbol ?
casig
 
Posts: 20
Joined: 19. October 2010 18:02

Re: Probleme beim Anzeigen von JPG

Postby WilliL » 02. March 2011 19:23

dann versuch mal
Code: Select all
//die Ausgabe von $pfad ergibt: C:\\Users\\Public\\Pictures\\grau.jpg
//
$pfad = str_replace('\\','/',$pfad);      // C:/Users/Public/Pictures/grau.jpg
$pfad = str_replace(':/','://',$pfad);    // C://Users/Public/Pictures/grau.jpg
echo $pfad

bei dem http-Aufrauf ""http://Public/Pictures/grau.jpg" bin ich davon ausgegangen, dass dein htdoc-Verzeichnis auf C:// liegt.
Wenn dein Uploadverzeichnis unterhalb des htdoc liegt - keine Ahnung ob das geht - von der Linkbetrachtung her müsste das nach meinem Verständnis ein "access denied" oder 403-Fehler erhalten, der im err-log eingetragen wird (wenn es aktiviert ist).

PS: ich glaube nicht, dass du die Grafik angezeigt bekommst. Ich denke, dass du dazu das Uploadverzeichnis oberhalb von htdocs benötigst - oder tief in den configs rumwühlen musst.
Dann wäre der Aufruf: http//localhost/upload/grau.jpg
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: Probleme beim Anzeigen von JPG

Postby Nobbie » 03. March 2011 00:07

Versuche es mal damit, dafür ist das extra gedacht:

http://de.php.net/manual/de/function.stripslashes.php
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Probleme beim Anzeigen von JPG

Postby casig » 05. March 2011 10:31

Verrückt, wie scheinbar simple Dinge einen schier verzweifeln lassen können.
Bevor ich also Euren Hinweis, den String zu bearbeiten, aufgreifen wollte, habe ich einfach mal den kompletten String in den Scriptcode gesetzt und geschaut, wie der geparste Quellcode sich darstellt:

echo '<br><br><img name="'.$datei.'" onmousedown = "WhichPixel()" src="http://localhost:85/images/a.jpg">';
echo '<br><br><img name="'.$datei.'" onmousedown = "WhichPixel()" src="file://C:\Users\Public\Pictures\a.jpg">';

<img name="blau.jpg" onmousedown = "WhichPixel()" src="http://localhost:85/images/a.jpg"><br><br> wird korrekt angezeigt!
<img name="blau.jpg" onmousedown = "WhichPixel()" src="file://C:\Users\Public\Pictures\a.jpg"> wird nicht angezeigt! Stattdessen erscheint dieser Platzhalter:
Image
Welche Bedeutung hat dieses Symbol?
casig
 
Posts: 20
Joined: 19. October 2010 18:02

Re: Probleme beim Anzeigen von JPG

Postby casig » 05. March 2011 10:43

Ich bin nicht sicher, ob das Symbol angezeigt wird, deshalb noch einmal: Image
casig
 
Posts: 20
Joined: 19. October 2010 18:02

Re: Probleme beim Anzeigen von JPG

Postby Nobbie » 05. March 2011 11:07

Das ist ein Standardplatzhalter, wenn eine Grafik nicht angezeigt werden kann.

Gib doch mal in Deinem Browser auf diesem Rechner einfach oben in der URL-Zeile diesen String ein:

Code: Select all
file://C:\Users\Public\Pictures\a.jpg


Was passiert dann? Übrigens fällt mir gerade auf, dass eigentlich drei(!) Slashes hinter file: stehen müssen und ersetze mal die Backslashes durch Slashes, also so

Code: Select all
file:///C:/Users/Public/Pictures/a.jpg
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Probleme beim Anzeigen von JPG

Postby casig » 05. March 2011 22:55

Beide Varianten werden vom IE korrekt wiedergegeben. Wenn ich den geparsten Quellcode mit src="file://... als HTML-Datei abspeichere, wird das Bild ebenfalls angezeigt!
casig
 
Posts: 20
Joined: 19. October 2010 18:02

Re: Probleme beim Anzeigen von JPG

Postby WilliL » 06. March 2011 12:22

Im Browseraufruf funktionieren bei mir beide Varianten.
Bei der Ausgabe (innerhalb einer html oder php) einer a.jpeg klappt es bei mir nur mit dem relativen Pfad ('../pics/a.jpg') oder mit der 'http://domain/pics/a.jpg
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: Probleme beim Anzeigen von JPG

Postby casig » 06. March 2011 20:10

Belasst es dabei. Die lokale Lösung klappt ja, Laptop ist eh meist dabei. Danke und Gruß.
casig
 
Posts: 20
Joined: 19. October 2010 18:02


Return to PHP

Who is online

Users browsing this forum: No registered users and 10 guests