linux上用c写的web,webserver将以二进制图片读入数组传给浏览器,但是不能显示

问题描述

linux上用c写的web,webserver将以二进制图片读入数组传给浏览器,但是不能显示

自己在linux上用c写了webserver,在处理图片请求的时候,web服务器将请求的图片数据发送给浏览器显示,我也是按照找请求图片文件然后读取文件二进制数据进入一个申请好的数组,然后将数组发给浏览器,请求的头也写好了,content-type等等。但是最后在浏览器上显示的是乱码(应该就是二进制吧)。头显示的是HTTP/1.0 200 OK
Server: MY Web Server
Content-Length:4 bytes
Content-Type:image/jpeg
Connection: keep-alive。就是显示不出来图片,有没有知道这个问题的亲,求指教一下,谢谢

解决方案

content-type对不对?
另外你浏览器接收到的二进制数据对不对,典型的,如果是jpeg图片,文件头中有jfif几个字,有没有。主要是检查下传输的数据有没有问题。

解决方案二:

把接受的数据还原一下,估计数据格式被损坏了

解决方案三:

我的处理代码是这样的,之前判断的jpeg不行,现在改为png了,也是一样显示不出来,每当浏览器输入uri时会出现该图片有问题无法显示的提示。
FILE *fpjp=NULL;
int tmp;

if(strncmp(file,"sword.png",9)==0)
{
fpjp=fopen(file,"rb");
if(fpjp!=NULL)
{
int ich;
int i=0;
char buff01[MAX]={''};
memset(buff01,0,sizeof(buff01));
while((ich=getc(fpjp))&&ich!=EOF)
{
buff01[i++]=ich;
}
send_http_jpeghead(conn_socket,200, "OK", "image/png");
write(conn_socket, buff01, strlen(buff01));
printf("this buffo1 stream is:%sn",buff01);

}
}
希望楼上的两位可以指点一下,content-type是对的,还有就是另外一位朋友说的数据还原我不是很懂,希望可以指教,谢谢。

时间: 2024-08-22 00:54:28

linux上用c写的web,webserver将以二进制图片读入数组传给浏览器,但是不能显示的相关文章

在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)

安装过程(如图所示)   若想使用imagemagick,需要安装各种依赖库.一步小心,可能就会安装错误.其中ImageMagick的访问地址为: http://www.imagemagick.org/script/index.php 2.安装支持库 Linux服务器如果没有安装Jpeg v6b.libPng.FreeType库,要在安装imagemagick之前先装好,否则imagemagick没法读取jpeg和png图片,字体文件也读不了.(本次安装以redHat为例,进行ImageMagi

在Linux上架设支持JSP+PHP的Web服务器

js|web|web服务|web服务器 近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富.大部分常见的服务都在Linux上有了较好的解决方案.而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色.谁也无法说 清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了极大的市场份额.下面就介绍一下如何在Linux上架设支持JSP+PHP+MySQL的Web服务器. 对于

在Ubuntu Linux上架设Web服务器详解

Apache 是一种功能强大的Web服务器.如今,Internet上无数运行在Linux上的Apache服务器正为Web世界的日益繁荣提供着有力的支撑.本文将向读者介绍如何在Ubuntu Linux系统迅速搭建Apache Web服务器. 尽管Ubuntu 是一种新兴的Linux分支,但Ubuntu 组织却为Apache提供了丰富的支持软件,这些软件都可以从发行版的光盘获取,也可以从官方站点轻松下载.所以,Ubuntu非常适合作为Web服务器的平台. 一. 安装Apache 下面,我们首先介绍如

web服务部署到linux上后,文件上传路径如何修改呢?

问题描述 web服务部署到linux上后,文件上传路径如何修改呢? 在windows下开发的时候,我的文件上传保存路径为 d:/www/xx/,项目部署到linux上后,应该如何修改上传路径呢?如果不修改,我发现也可以上传,但是文件会上传到tomcat7/bin/目录中,给人感觉非常混乱.我希望能放在指定的文件夹中.谢谢! 解决方案 参考:http://www.enkj.com/help/newscontent/70983 你的路径用 /upload/xxx 就会根据你定义的目录相对路径找到 解

服务器-为什么要把web项目部署在linux上,如果要完成它,需要学哪些知识

问题描述 为什么要把web项目部署在linux上,如果要完成它,需要学哪些知识 本人小白,只知道在windows上用tomcat部署项目,也只知道用端口号去访问,怎么样才能让所有人都可以访问自己做的网站,经常听说把项目部署到linux服务器,但一直不明白,求指点! 解决方案 让所与人都可以访问,前提是你要有,在公网的服务器和公网的IP.这样你的服务器才算是对大众可见.当然现在只能使用IP的方式访问.如果要是使用XXXX.com的形式,那么你就要有域名了..这个就要设计域名申请,要是服务器在国内的

嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】

转自:http://blog.csdn.net/tianmohust/article/details/6595996 版权声明:本文为博主原创文章,未经博主允许不得转载.   嵌入式Linux上通过boa服务器实现cgi/html的web上网简介: 第一步 Boa程序的移植 1.下载Boa源码 2.生成Makefile文件 3.修改Makefile文件 4.编译 第二步 Boa的配置 第三步boa的执行 1.将根文系统ramdisk在电脑主机上mount &nda  嵌入式linux上通过boa

Linux 工程师新法宝:在 Visual Studio 上用 C++ 写 Linux

如今我们正在开发一个新的插件,一个能够让开发者在 Visual Studio (以下简称 VS ) 上建构能够在 Linux 上运行 C++ 程序的套件.开发者可以借由这个插件将 C++ 程序移转到 Linux 服务器.PC 以及移动设备上,也同时可以借由这个插件将这些机器连结至你的 VS 上. VS 将会自动地复制一份并在远端建构你的来源档,再运行带有除错器的应用程序.我们的这项计划也针对特殊的架构提供系统支持,包含 ARM 等. 下方文章将继续介绍使用我们这套全新的 Linux 计划. 目前

php+mysql+nginx在linux上的环境部署

一直在linux上鼓捣,还没有完整在linux下配置过nginx服务器环境部署呢,这几天没什么事就部署了一下,遇到的问题也很多,现在把我的环境部署文档发出了,有什么问题大家可以一起讨论一下,希望大家采用后遇到问题多多沟通. 安装所需各种依赖包 sudo -s LANG=C yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 lib

如何在Linux上用Apache搭建Git服务器

最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 Apache版本:Apache/2.2.15 Git版本:git 1.7.1 Git访问方式:基于http的基本验证(非SSL) Apache的安装 1. 安装Apache软件:yum install httpd 2. 设置Apache在服务器启动时运行:chkconfig --levels 235 httpd on Git的安装与配置 1. 安装