在 C# 中我正在做
context.Response.ContentType = "image/png";
context.RewritePath(sz);
context.Response.ContentType = "image/png";
它似乎重定向了路径,因为我可以在我的页面上看到图像。但是在Firefox中,当我右键单击并选择“查看图像”时,我会下载。使用这个 c++ 代码,我可以看到 mime 是 application/octet-stream
#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;
}
我的问题是如何将 mime 设置为正确的类型?上面我将它硬编码为 png 不起作用。但是,我宁愿不对任何 mime 进行硬编码并让它工作。我能够将 XML 文件重定向到 somefile.aspx 并让该页面设置内容类型并生成 XML。然而,重写图像路径似乎让图像工作我只是没有得到正确的类型。
如何更正内容/mime 类型?作为 B 计划,我将重写为一个 aspx 文件。发送图像的最佳方式是什么?我可以做类似 context.Response.OutputStream=stream("filename"); ?