我在编写用cgi上传文件是遇到了麻烦,哪位高手帮帮我!

Cexo 2000-03-19 10:52:00
我用的是标准C编写上传cgi程序的,但在读取stdin上传数据时如果遇到^Z(0x1A)则读入就结束了,我试了多种方法都不行,不论是fgetc,fread,fgets。是不是要将输入流转为二进制方式读取才行呢?但也没法转换呀!哪位高手请帮帮忙,这里先谢谢了!
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunsetyang 2000-03-21
  • 打赏
  • 举报
回复
你用到了<Form ENCTYPE="multipart/form-data" action="xxx.cgi" method="post"><input type=file ...>了吗?如果是的,用你的方法应该是可以提取出来的。不会有1A的问题啊!你把你的上传部分的html代码铁出来看看。再帮你解决!你的问题不是cgi lib的问题,而是由于cgi的输入的问题。很可能就没有输入正确的输入流。
sirius 2000-03-21
  • 打赏
  • 举报
回复
到我的主页上去当一个CGI C Lib源程序去看!
http://cppsource.yeah.net
很简单的.也可以懒惰直接用它的函数
Cexo 2000-03-20
  • 打赏
  • 举报
回复
文件上传是不是在html中用post来进行传送数据吗?我想应该是http方式吧,我读入数据时直接申请上传总数据长度(CONTENT_LENGTH)的内存块,然后用fread读入,但如果是^Z就不行,不知道是读入没读全还是写入没写全,我写入文件时使用fwrite,也是按文件大小写入的,根本没有使用循环之类的东西!我已经被困扰了一个多星期了,您有什么办法吗?或者是给我一个用C写的示例也成呀!
sunsetyang 2000-03-19
  • 打赏
  • 举报
回复
不好意思,没有弄懂你的意思的时候就回答了你.我不知道你的上传怎么会要去读标准输入?你的上传使用什么办法的?基于HTTP的文件上传?还是自己定义的文件上传?子定义的文件上传中你想标准输出写时使用的是什么呢?fwrite?还是printf?应该要使用fwrite才会得到正确的输入流.
sunsetyang 2000-03-19
  • 打赏
  • 举报
回复
你可以使用fread解决的.具体的,只要这样处理:
fread(buf,1,size,stdin)
这样就能将输入读入缓冲区的.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧