HTTP 服务器(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]
但是从控制台来看,已经把图片传输了。
解决方案
因为HTTP_INFO只是1024的大小。所以才会出现这个问题。
这篇关于HTTP 服务器(C语言)传输图片出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文