Frage

In C # ich tue

            context.Response.ContentType = "image/png";
            context.RewritePath(sz);
            context.Response.ContentType = "image/png";

Es scheint der Weg zu umgeleitet, wie ich auf meinen Seiten sehen Bilder sehen können. Doch in Firefox, wenn ich mit der rechten Maustaste und wählen Sie „Ansicht Bild“ i erhalten einen Download. Mit dieser c ++ Code i den Mime sehen application / octet-stream zu sein

#include <curl/curl.h> 
#include <ios>
#include <iostream>
#include <string>
#pragma comment(lib, "curllib")
using namespace std;
size_t function( void *ptr, size_t size, size_t nmemb, void *stream)
{
    cout << (char*)ptr;
    return size*nmemb;
}
size_t function2( void *ptr, size_t size, size_t nmemb, void *stream)
{
    return size*nmemb;
}
int main()
{
    CURL *c = curl_easy_init();
    curl_easy_setopt(c, CURLOPT_HEADERFUNCTION, function);
    curl_easy_setopt(c, CURLOPT_WRITEHEADER , 1);
    curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, function2);
    curl_easy_setopt(c, CURLOPT_WRITEDATA, 0);
    curl_easy_setopt(c, CURLOPT_URL, "http://localhost:3288/s/main/4/AAA.png");
    curl_easy_perform(c);
    curl_easy_cleanup(c);
    return 0;
}

Meine Frage ist, wie kann ich den Mime auf den richtigen Typ eingestellt? Above ich es png hart codieren, die nicht funktioniert. i codiert jedoch eher keinen Mime und haben sie funktionieren. Ich konnte eine XML-Datei umleiten somefile.aspx und haben, dass die Seite mit dem Inhaltstyp und die XML zu generieren. Jedoch Umschreiben Pfad zu dem Bild erscheint das Bild der Arbeit lasse ich den richtigen Typ erhalten gerade nicht.

Wie kann ich den Inhalt / MIME-Typ korrekt? Als Plan B umschreiben ich werde auf eine aspx-Datei. Was ist der beste Weg, um ein Bild zu schicken? Könnte ich wie context.Response.OutputStream etwas tun = Strom ( „filename“); ?

War es hilfreich?

Lösung

Wenn Sie RewritePath, was auch immer Sie den Kopf geschrieben hat, wird verworfen. Was auch immer ist der Umgang mit dem neuen Pfad des Header bereitstellt.

Wenn Sie den Inhaltstyp angeben möchten, können Sie nicht RewritePath verwenden. Stattdessen können Sie Response.BinaryWrite oder Response.WriteFile zur Ausgabe der Dateidaten in die Antwortstream nach dem Einstellen des Kopfes verwenden.

Andere Tipps

Check out: erstellen PNG-Bild mit C # Httphandler webservice

Es sollten Sie ein Beispiel für eine PNG in das Antwort Dumping.

application/octet-stream wird Ihr Browser sagen, dass die Datei ist binär und Ihr Browser wird es dann herunterladen.

Das hat für mich in der Vergangenheit (in einem HttpHandler allein verantwortlich für die Dateien zur, damit die klaren Anrufen) gearbeitet:

Response.Clear();
Response.ClearHeaders();
Response.ContentType = "image/png";
Response.AddHeader("Content-Type", image/png");

Wenn Sie die Datei herunterladen möchten, können Sie auch hinzufügen:

Response.AddHeader("Content-Disposition", "attachment; filename=myimage.png");

Sie einen Dateinamen an den Browser als zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top