- 主题:我的smth1.2贴不了附件
我再re一次...这个地方过段时间要出狠招改改了...
发信人: atppp (Big Mouse), 信区: cnBBSDev
标 题: Re: wForum贴附件碰到些问题
发信站: 牧场物语 (Fri May 7 19:26:47 2004), 转信
这个问题以前说过了,我在重提一次希望smth能改吧。
bbs2www/phplib/phplibbbs.c bbs_postarticle()函数是这样写的:
#if USE_TMPFS==1
snprintf(buf,MAXPATH,"%s/home/%c/%s/%d/upload",TMPFSROOT,toupper(currentuser->us
erid[0]),
currentuser->userid,getcurrentuinfo_num());
#else
snprintf(buf,MAXPATH,"%s/%s_%d",ATTACHTMPPATH,currentuser->userid,getcurrentuinf
o_num());
#endif
这个地方是获取上传文件目录的,和site.php里面的getattachtmppath()函数完全没有关系
,但是,这两个地方必须严格一致才能保证上传文件运行正常。我设想的一种改法是,把
getattachtmppath()放进phplibbbs.c里面,然后bbs_postarticle()也调用这个函数,
site.php里面去掉这个函数。
但是这个改动似乎有点大了,反正如果大家碰到问题知道是这里要调整就好了。
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 编译bbs系统之前
: 在bbsconfig.h
: 定义了tmpfs
: 全部安装好
: 包括/apache/htdocs/sites/devel.h
: 也进行了相应的修改之后
: 发现web下不能上传附件
: 现象是没有任何提示,显示粘贴上了附件,但是文章发表之后是没有附件的,看文件所占空间,只有210字节,很小,说明没有粘贴上
: 这种情况怎么办?
--
你的USE_TMPFS定义的是1?
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 发现还是不行啊
: 比如cache/home/F/FlyingFish下的确有这个临时文件
: 但是无法贴到文章上去
: 【 在 FlyingFish (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: : 哦
: : 好的
: : 我试一下
--
ft 你这个目录怎么造出来的?好像phpbbslib.c里头不是这个目录阿。
你自己改了site.php?
照抄bbs2www/sites/smth/site.php里头那个函数就可以了,不过可能只有CVS上有。
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 发现还是不行啊
: 比如cache/home/F/FlyingFish下的确有这个临时文件
: 但是无法贴到文章上去
: 【 在 FlyingFish (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: : 哦
: : 好的
: : 我试一下
--
function getattachtmppath($userid,$utmpnum)
{
$attachdir="cache/home/" . strtoupper(substr($userid,0,1)) . "/" . $userid .
"/" . $utmpnum . "/upload";
return $attachdir;
}
你的site.php里头是这么写的吗?
【 在 F1yingFish@smth.org-SPAM.no (好好学习·做好COA的技术站务·缄默·力行) 的大作中提到: 】
: 现在的问题是在cache下的相应目录里能找到临时文件
: 但是发表的文章里贴不上
: 这也是路径的问题吗?
: 我没有定义wForum
: 用的是www方式
: 【 在 atppp@bbs.stanford.edu-SPAM.no (Big Mouse) 的大作中提到: 】
: : 我再re一次...这个地方过段时间要出狠招改改了...
: : 发信人: atppp (Big Mouse), 信区: cnBBSDev
: : 标 题: Re: wForum贴附件碰到些问题
: : ...................
: ...................
--
你确定改动以后正确安装了吗?不好意思我实在想不出什么原因只好问这种弱智问题了。
附件发表的原理是PHP上传到那个临时目录,点发表的时候phpbbslib去那个临时目录找
附件然后生成文章,同时删除临时目录里面的文件。所以我觉得应该还是目录不一致
的问题。你的现象,前面都是对的,但是phpbbslib找不到附件。
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我的phpbbslib.c
: snprintf(buf, MAXPATH, "/home/bbs/%s/home/%c/%s/%d/upload", TMPFSROOT,
: toupper(currentuser->userid[0]), currentuser->
: userid, getcurrentuinfo_num());
: site.php
: $attachdir="/home/bbs/cache/home/" . strtoupper(substr($userid,0,1)) .
: "/" . $userid . "/" . $utmpnum . "/upload";
: 我觉得不是目录的问题
: 是发表文章的时候没有把附件粘贴上去
: 还留在了临时文件夹里
: web下点击附件按钮,可以看到那个已经粘贴好的附件始终在那里,除非自己删掉它,发表文章无法把它删去的
: 【 在 atppp@bbs.stanford.edu-SPAM.no (Big Mouse) 的大作中提到: 】
: : ft 你这个目录怎么造出来的?好像phpbbslib.c里头不是这个目录阿。
: : 你自己改了site.php?
: : 照抄bbs2www/sites/smth/site.php里头那个函数就可以了,不过可能只有CVS上有。
--
你没有重启动httpd?
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我修改了bbs2www/phplib/phpbbslib.c文件
: 然后到代码主目录下make
: make install了一下
: 这样做/home/apache/libexec/bbs里的phpbbslib.so应该能更新吧
: 【 在 atppp@bbs.stanford.edu-SPAM.no (Big Mouse) 的大作中提到: 】
: : 你确定改动以后正确安装了吗?不好意思我实在想不出什么原因只好问这种弱智问题了。
: : 附件发表的原理是PHP上传到那个临时目录,点发表的时候phpbbslib去那个临时目录找
: : 附件然后生成文章,同时删除临时目录里面的文件。所以我觉得应该还是目录不一致
: : 的问题。你的现象,前面都是对的,但是phpbbslib找不到附件。
--
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我修改了bbs2www/phplib/phpbbslib.c文件
: 然后到代码主目录下make
: make install了一下
: 这样做/home/apache/libexec/bbs里的phpbbslib.so应该能更新吧
确认过这个目录底下文件的修改时间吗
: 【 在 atppp@bbs.stanford.edu-SPAM.no (Big Mouse) 的大作中提到: 】
: : 你确定改动以后正确安装了吗?不好意思我实在想不出什么原因只好问这种弱智问题了。
: : 附件发表的原理是PHP上传到那个临时目录,点发表的时候phpbbslib去那个临时目录找
: : 附件然后生成文章,同时删除临时目录里面的文件。所以我觉得应该还是目录不一致
: : 的问题。你的现象,前面都是对的,但是phpbbslib找不到附件。
--
bbs_postarticle() 那个 buf[80] 好像定义小了,这里看起来有问题。
你把buf[80]改成buf[256]看看。
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我在phpbbslic.c里加上一个输出试试
: 【 在 FlyingFish (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: : 确认过
: : 都是刚刚make install完的时间
--
/home/bbs/cache/home/F/FlyingFish/123/upload
好像也没有80个字符阿...
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我的phpbbslib.c
: snprintf(buf, MAXPATH, "/home/bbs/%s/home/%c/%s/%d/upload", TMPFSROOT,
: toupper(currentuser->userid[0]), currentuser->
: userid, getcurrentuinfo_num());
: site.php
: $attachdir="/home/bbs/cache/home/" . strtoupper(substr($userid,0,1)) .
: "/" . $userid . "/" . $utmpnum . "/upload";
: 我觉得不是目录的问题
: 是发表文章的时候没有把附件粘贴上去
: 还留在了临时文件夹里
: ...................
--
你的httpd.conf里面设置了User bbs了吧...
【 在 FlyingFish@feeling-NOsmthSPAM-org (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: 我在phpbbslic.c里加上一个输出试试
: 【 在 FlyingFish (好好学习·做好技术站务·缄默·力行) 的大作中提到: 】
: : 确认过
: : 都是刚刚make install完的时间
--