ContentType لا يعمل، والتمثيل الصامت = التطبيق / الثماني تيار

StackOverflow https://stackoverflow.com/questions/1026152

سؤال

في C # أنا أفعل

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

ويبدو لإعادة توجيه المسار كما أستطيع أن أرى رؤية الصور على صفحاتي. ولكن في فايرفوكس عندما كنت بزر الماوس الأيمن فوق وحدد "عرض صورة" أحصل على التحميل. باستخدام هذا ج ++ كود أستطيع أن أرى التمثيل الصامت يجري تطبيق / الثماني تيار

#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;
}

وسؤالي هو كيف يمكنني تعيين التمثيل الصامت إلى النوع الصحيح؟ فوق ط ترميز ثابت إلى بابوا نيو غينيا الذي لا يعمل. ولكن أنا لا بل ترميز ثابت للأي التمثيل الصامت، وأنها تعمل. وكنت قادرا على إعادة توجيه ملف XML إلى somefile.aspx ولها أن الصفحة تعيين نوع المحتوى وتوليد XML. لكن إعادة كتابة إلى مسار صورة يبدو للسماح للعمل صورة أنا لا مجرد الحصول على النوع الصحيح.

وكيف يمكنني تصحيح المحتوى / نوع التمثيل الصامت؟ كما خطة B أنا سوف إعادة كتابة إلى ملف ASPX. ما أفضل طريقة لإرسال صورة؟ يمكن أن أفعل شيئا مثل context.Response.OutputStream = تيار ( "اسم الملف")؛

هل كانت مفيدة؟

المحلول

عند استخدام RewritePath، مهما كنت قد كتبت ليتم تجاهل الرأس. كل ما هو التعامل مع المسار الجديد هو توفير رأس.

إذا كنت ترغب في تحديد نوع المحتوى، لا يمكنك استخدام RewritePath. وبدلا من ذلك يمكنك استخدام Response.BinaryWrite أو Response.WriteFile لإخراج البيانات الملف إلى دفق استجابة بعد وضع الرأس.

scroll top