Delphi WebBroker 输出图片的问题


本文整理自网络,侵删。

 
Delphi 的 WebBroker 是一个 http server,可以直接在里面写代码响应来自浏览器的请求,输出网页给浏览器。
在 WebBroker 里面,如果要输出图片,可以将图片内容加载到一个 TStream 里面,然后:
Response.ContentType := 'image/jpeg';
Response.SendStream(AStream);
这样输出。如果用 Windows 的 IE 浏览器来访问,没有问题。用安卓手机的浏览器来访问,也没问题。
但是,iOS 手机的浏览器有问题,无法看到图片。Windows 下的 Chrome 浏览器也有问题。Chrome 给出的错误提示:ERR_INVALID_HTTP_RESPONSE。
朋友建议抓包看。结果一抓包,发现 Server 给出的响应,居然没有 http 头,而是直接给出了图片的二进制数据。
试着改一下代码:
Response.ContentStream := AStream;
Response.SendResponse;
改完代码再次测试,Chrome 浏览器没问题了。iOS 底下也没问题了。
------------------------------------
查 delphi 关于 SendStream 的帮助,里面确实说到,调用 SendStream 之前,要先调用 SendResponse。SendResponse 会先发送 http 响应信息。
――――――――――――――――
原文链接:https://blog.csdn.net/pcplayer/article/details/80964433

相关阅读 >>

Delphi 搜索某个字的位置 [带重复]

Delphi获取13位格林治时间实现方法

Delphi 通过进程名获得文件全路径的函数

Delphi 使用zlib对datasetprovider.data数据包进行压缩传输的测试

Delphi excel表格数据导入数据库

Delphi 制作放两个小图片的按钮

Delphi 把窗体上的所有edit清空怎么做

Delphi格式化函数format、formatdatetime和formatfloat

Delphi webbrowser 滚动条的去除、边框去除

Delphi 莫名奇妙的错误 Delphi is not a valid integer value

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...