服务响应文件SRF直接向浏览器传图片流的代码片段
2009-04-24 16:07
465 查看
题目:服务响应文件SRF直接向客户端浏览器传图片流的代码片段
cheungmine
问题:如何从Web服务端把图片数据直接写到流里,展现在客户端浏览器中
为什么要这样做:效率、安全。不生成临时文件。完全内存操作。
我使用VS2005 创建ATL Server项目,合并ISAPI,其他如常。项目名称:RefreshImg。自动创建同名的虚拟目录,并且自动部署。
1)改写RefreshImg.h文件的下面这段代码:
// 下面是一个有关如何将替换标记用于模具(Stencil)处理器的示例
HTTP_CODE OnHello(void)
{
//m_HttpResponse << "Hello World!";
char buf[4096];
size_t cbRead;
DWORD dwWritten;
m_HttpResponse.ClearContent();
m_HttpResponse.SetContentType("image/jpeg");
// 下面的图片文件必须存在
FILE *fp = fopen("C://Inetpub//wwwroot//RefreshImg//obm_skq.jpg", "rb");
while((cbRead = fread(buf, 1, 4096, fp))>0){
if (S_OK != m_HttpResponse.WriteStream(buf, cbRead, &dwWritten) || cbRead != dwWritten){
fclose(fp);
return HTTP_FAIL;
}
}
return HTTP_SUCCESS;
}
2)改写RefreshImg.srf:
<html>
{{handler RefreshImg.dll/Default}}
<head>
</head>
<body>
<img src="{{Hello}}" />
</body>
</html>
3)重新生成全部解决方案,然后用IE或FF打开
http://localhost/RefreshImg/RefreshImg.srf
就可以看到图片了。
也可以自己写一个新的Refresh.htm网页,如下:
<html>
<head>
<title>cheungmine</title>
</head>
<body>
<img src="RefreshImg.srf" />
</body>
</html>
把 Refresh.htm 放到和 RefreshImg.srf 同一个目录下面。
这时候浏览Refresh.htm,也可以看到图片:
>>
.NET仿照此做。但本文与.NET无关。
cheungmine
问题:如何从Web服务端把图片数据直接写到流里,展现在客户端浏览器中
为什么要这样做:效率、安全。不生成临时文件。完全内存操作。
我使用VS2005 创建ATL Server项目,合并ISAPI,其他如常。项目名称:RefreshImg。自动创建同名的虚拟目录,并且自动部署。
1)改写RefreshImg.h文件的下面这段代码:
// 下面是一个有关如何将替换标记用于模具(Stencil)处理器的示例
HTTP_CODE OnHello(void)
{
//m_HttpResponse << "Hello World!";
char buf[4096];
size_t cbRead;
DWORD dwWritten;
m_HttpResponse.ClearContent();
m_HttpResponse.SetContentType("image/jpeg");
// 下面的图片文件必须存在
FILE *fp = fopen("C://Inetpub//wwwroot//RefreshImg//obm_skq.jpg", "rb");
while((cbRead = fread(buf, 1, 4096, fp))>0){
if (S_OK != m_HttpResponse.WriteStream(buf, cbRead, &dwWritten) || cbRead != dwWritten){
fclose(fp);
return HTTP_FAIL;
}
}
return HTTP_SUCCESS;
}
2)改写RefreshImg.srf:
<html>
{{handler RefreshImg.dll/Default}}
<head>
</head>
<body>
<img src="{{Hello}}" />
</body>
</html>
3)重新生成全部解决方案,然后用IE或FF打开
http://localhost/RefreshImg/RefreshImg.srf
就可以看到图片了。
也可以自己写一个新的Refresh.htm网页,如下:
<html>
<head>
<title>cheungmine</title>
</head>
<body>
<img src="RefreshImg.srf" />
</body>
</html>
把 Refresh.htm 放到和 RefreshImg.srf 同一个目录下面。
这时候浏览Refresh.htm,也可以看到图片:
>>
.NET仿照此做。但本文与.NET无关。
相关文章推荐
- 服务响应文件SRF直接向浏览器传图片流的代码片段
- php强制文件下载(避免文件或图片直接在浏览器中打开)
- 使用XML布局文件和java代码共同控制UI界面做一个简易图片浏览器
- java和Android文件下载断点续传和图片下载代码实现,可直接复制简单实现
- 解决微信内嵌浏览器无法响应上传文件(图片)
- 浏览器调试工具修改代码直接关联到文件并修改(add folder to workspace)
- Apache Cordova 安卓android上传图片或者文件 调用后台服务实现java代码 ft.upload(imageURI, uri, that.uploadSuccess, that.
- 不用浏览器,直接用代码发送文件给webservices所在服务器 并且可以周期行的发送
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
- Response就是响应服务起器对浏览器请求的文件或数据,可以重定向,发送给浏览器,设置cookie
- ###下载文件总是提示action文件【一定是response响应头设置无效(代码没执行)或者没设置】【response写会浏览器必须放在最后一句,保证响应头设置执行】
- MFC实现打开、保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了
- 小程序下载图片、文件、wx.downloadFile,废话少说直接上代码
- 示例代码:利用Sps提供的remoting服务,把office文档在线转换成html文档(包括页面图片的文件)
- Jquery响应回车键直接提交表单操作代码
- 文件上传的小代码片段
- PHP 图片文件上传实现代码
- 简单粗暴JavaWeb-第五篇:直接访问HTML、图片文件等静态资源
- 客户端通过C# 代码直接从服务器下载文件到本地
- 【代码】Node.js模拟浏览器文件上传