如何使用fread在C中使用Web服务器在浏览器中显示图像?

古鲁

我可以使用Web server.c在浏览器中显示html和纯文本文件。但是,当我尝试加载图像jpeg文件时,它给我这个错误“图像http://127.0.0.1:8080/index.jpeg ”无法显示,因为它包含错误。

我将内容类型设置为“ image / jpeg”。

这是我的代码:

    FILE *fp;
    char ch;
    unsigned long fileLen;
    unsigned char *buffer;

    fp = fopen(page+1,"rb");
    fseek(fp, 0, SEEK_END);
    fileLen=ftell(fp);
    fseek(fp, 0, SEEK_SET);
    buffer=(char *)malloc(fileLen);
    fread(buffer,fileLen,sizeof(unsigned char),fp);

    fclose(fp);

    write (connection_fd, buffer, strlen(buffer));

这是我设置的图像的标题

“ HTTP / 1.1 200 OK \ r \ n”“内容类型:image / jpeg \ r \ n”“连接:close \ r \ n”“ \ r \ n”;

请指教。谢谢 :)

r3mainer

你的write()说法是错误的。返回的值strlen(buffer)将是JPEG文件中第一个零字节的位置。尝试fileLen改用。

这是我想到的其他几件事:

  1. fread()通话中,第二个和第三个参数实际上应该是相反的。而且,由于sizeof(unsigned char)1通过定义,我会用fread(buffer,1,fileLen,fp);代替。

  2. 您应该真正检查fopen(),等返回的值

  3. 您使用的page+1建议是将未经检查的HTTP查询字符串参数直接放入文件系统调用中。显然,您不想这样做:-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用jsp或javascript在服务器上的浏览器中显示pdf

如何仅使用Web服务器中的配置来使浏览器缓存无效?

简单的python 3 Web服务器在浏览器中显示图像

C Web 服务器,图像未显示在浏览器上?

使用角度从服务器在浏览器中显示文件

在浏览器中使用getID3显示图像

如何使用 webpack 开发服务器在 webpack 配置中设置浏览器列表

使用php在浏览器中显示图像

使用Rest服务在浏览器中显示pdf

如何使用Javascript从浏览器调用Web服务

如何使用Web浏览器对象显示pdf文件

如何在golang中启动Web服务器在浏览器中打开页面?

在浏览器中使用 xmpp.js 连接到 XMPP 服务器

Angular SSR - 在浏览器和服务器中使用 performance.now()

如何使用其 IP 地址从 Web 浏览器连接到 python 套接字服务器?

Web浏览器如何确定从服务器接收的文件中的入口点?

如何从浏览器访问在Docker容器中运行的Web服务器?

如何正确获取 C++ 服务器代码以访问 Web 浏览器?

如何使用openlayers在浏览器中显示高分辨率图像

如何使用Rails3.2.6的send_data在浏览器中显示图像Active Record?

如何使用flask在浏览器中显示来自cv2的图像?

如何使用从文件浏览器获得的路径在 tkinter 的画布对象中显示图像

控制器返回图像以在浏览器中使用

如何在c#中使用chrome web浏览器获取javascript的返回值

如何使用 httpd.conf 防止从客户端浏览器访问服务器中的某种文件

如何使用django-ckeditor在admin中的服务器上上传文件和浏览器文件?

在iOS中使用JavaScript在PWA中显示服务器生成的图像

如何使用WebSocket在Web浏览器页面中显示asyncio的值

如何使用 php 显示 MSQL 表并在 Web 浏览器中编辑它