C语言服务器读取图片,HTTP 服务器(C语言)传输图片出现问题

我自己用C语言写一个HTTP服务器,但是在使用fopen,fread时候出现问题。传输不了图片。

void http_send_static(int sock_client,char *datapath){

char HTTP_HEADER[1024],HTTP_INFO[1024];

int len;

FILE *fd;

printf("%s\n",datapath);

if((fd=fopen(datapath,"rb"))<0){

printf("error open\n");

}

if(fd == NULL)

printf("Open file Error!");

char buff[1024];

while((len=fread(buff,1,sizeof(buff),fd))>0){

printf(" buff %ld \n",sizeof(buff));

int fd;

fd=open(datapath,O_RDONLY);

char buff[1024];

while ((len=read(fd,buff,1024))>0){

char *datatype;

if(strstr(datapath,".html")){

datatype=http_content_type[0].value;//text/html

}else{

datatype=http_content_type[2].value;//image/jpeg

}

printf("datatype %s\n",datatype);

sprintf(HTTP_HEADER,http_res_tmpl,len,datatype);

len = sprintf(HTTP_INFO,"%s%s",HTTP_HEADER,buff);

send(sock_client,HTTP_INFO,len,0);

}

//fclose(fd);

}

浏览器打开网页时,图片显示错误,还有一部分的html的代码也没有传递成功。

![图片描述][1]

但是从控制台来看,已经把图片传输了。

bVOD7z?w=1048&h=836

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值