- 论坛徽章:
- 0
|
原帖由 WHITLACK 于 2008-12-23 21:38 发表
将本地的几个文件上传到服务器上,
不知道可以用什么办法?
我想到的是用先将几个文件打包,然后fread
可是现在有个问题是,fread读取文本文件是可以的,
我用tar打包后,使用fread,上传到服务器上的 ...
用fread 函数读取文本文件肯定是没问题的,
但是用你现在的代码读取tar肯定会出问题的,而且你可以试试,读取jpg,等二进制文件都会有问题,不完整的;
LZ用下面我修改的代码就应该没问题的,不信可以试试!
fp = fopen(file, "r");//如果此处file为文本文件,读取就没有问题,如果是tar包,就会上传空的文件上去
if (fp == NULL) {
printf("file open fail!\n");
return -1;
}
fd = fileno(fp);
fstat(fd, &theStat);
if (theStat.st_size > length) {
printf("file is too big!\n");
fclose(fp);
return -1;
}
int liSize = 0;
while(liSize < theStat.st_size)
{
readCnt = fread(buf + liSize, 1, 1024, fp);
liSize += 1024;
}
if (readCnt < theStat.st_size ){
printf("lose some.%d %d\n", readCnt,(int)theStat.st_size);
fclose(fp);
return -1;
}
|
|
|