Dynamische PNGs mit Apache 2

Alles, was den Apache betrifft, kann hier besprochen werden.

Dynamische PNGs mit Apache 2

Postby Sicky » 18. February 2005 10:08

Hallo,

ich habe ein Problem mit Apache2.0 und dynamisch eingebundenen PNG-files.
Die Webseiten werden dynamisch über eine ISAPI Extension generiert und um die PNG-files anzuzeigen word folgender Code in der dll verwendet:

*pCtxt << "<IMG border=\"0\" usemap=\"#rrimage2\" src=\"/scripts/isalis.dll?GetImage?ImageIndex=" << m_pIsAlis->m_pImage[nIdx].szIdx
<< "\" width=\"650\" height=\"300\"></IMG>";

Dieser Index ist für den Speicher, aus dem das File gelesen wird. Im Aufruf "GetImage" steckt folgender Code:

void CIsalisExtension::GetImage(CHttpServerContext* pCtxt, LPCTSTR pstrImageIndex)
{
long lImageIndex;

// muss thread-sicher sein
m_cs.Lock(); // muss thread-sicher sein, (falls in anderem Thread Konfigurationen nachgeladen werden -> betrifft u.a. Wörterbuch)

lImageIndex = GetImageIndex(pstrImageIndex);

if ( (lImageIndex >= 0) && (lImageIndex < m_nImgMemSize) ) {

if (m_pImage[lImageIndex].ptr != NULL) {

if (m_pImage[lImageIndex].len >= 0) {

/* Image an Client übertragen */
OutputImage(pCtxt, (char *)m_pImage[lImageIndex].ptr, (long)m_pImage[lImageIndex].len);
}
}
}
m_cs.Unlock();
}

.
.
.
.

void CIsalisExtension::OutputImage(CHttpServerContext* pCtxt, char* pData, long lLen)
{

char szBuff[50];
long lSize = lLen;

// Start by writing the proper content type to the client for IIS
AddHeader(pCtxt, _T("Content-Type: image/png\r\n"));
wsprintf(szBuff, "Content-length: %ld\r\n", lSize);
AddHeader(pCtxt, szBuff);

// Start by writing the proper content type to the client for Apache
// AddHeader(pCtxt, _T("Content-Type: image/png\n"));
// wsprintf(szBuff, "Content-length: %ld\n\n", lSize);
// AddHeader(pCtxt, szBuff);

CBinaryHtmlStream* pStream = new CBinaryHtmlStream;
ISAPIVERIFY(pStream != NULL);

for (long lCount = 0; lCount<lSize; lCount++)
*pStream << *(pData+lCount);

*pCtxt << *pStream;

delete pStream;

}
.
.
.
Nun ist meine Frage:

Ich habe den Header für den IIS. Der auskommentierte Header soll für den Apache sein. Ich weiss nur nicht genau wie dieser aussehen soll.
Oder muss ich im Config-file des Apaches noch etwas einbinden. Die dll läuft soweit. Normale Bilder, die aus einer Datei eingebunden sind,
werden richtig angezeigt. Nur die PNGs, die durch den Stream eingebunden werden, sind nicht zu sehen.

Danke
User avatar
Sicky
 
Posts: 15
Joined: 21. January 2005 09:33

Postby Sicky » 22. February 2005 11:57

Kann der Apache überhaupt dynamische PNGs verarbeiten ???
muss man dazu eine bestimmte einstellung machen oder so was ???

Gruß
Sicky
User avatar
Sicky
 
Posts: 15
Joined: 21. January 2005 09:33

Postby Wiedmann » 22. February 2005 12:50

De Apache muss nicht wissen was ein PNG ist, der liefert aus was deine Anwendung generiert (oder nicht).

Du solltest dir auch nochmal die RFC2616 anschauen (Aufbau einer HTTP Response Message).

Zu ISAPI an sich, kann ich dir sonst nicht viel sagen (hattest du da nicht eigentlich schon einen Thread dazu?).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby thomscheiner » 14. April 2005 10:04

Dein Code:

##############################################
*pCtxt << "<IMG border=\"0\" usemap=\"#rrimage2\" src=\"/scripts/isalis.dll?GetImage?ImageIndex=" << m_pIsAlis->m_pImage[nIdx].szIdx << "\" width=\"650\" height=\"300\"></IMG>";
##############################################


Ich bin da absolut nicht fit; eines ist mir aber aufgefallen:

In dem Schnippsel

########
src=\"/scripts/isalis.dll?GetImage?ImageIndex="
########

verwendest Du zwei Mal ein Fragezeichen; wenn ich zwischen PHP-Skripts Werte übergebe, so notiere ich nach dem Dateinamen zunächst ein Fragezeichen, und dann (wenn mehr als eine Variable kommt) als Separator zwischen allen späteren Variablen ein Kaufmännisches Und / Ampersend.

Ich würde es also probieren mit

########
src=\"/scripts/isalis.dll?GetImage&ImageIndex="
########

, und wenn das auch nicht klappt, ist halt auch dieser Strohhalm geknickt.




Schöne Grüße,
Thom
thomscheiner
 
Posts: 4
Joined: 14. April 2005 09:54
Location: München


Return to Apache

Who is online

Users browsing this forum: No registered users and 47 guests