作者godfat (godfat 真常)
看板Ruby
标题Re: [问题] 无法上传档案(但win下可以)
时间Sat Jul 5 18:08:28 2008
不知不觉我也推文推太多了点... 那我从头讲一次好了。
首先,你给的资讯一直都是片段的,如果你不能那麽肯定
需要提供哪些资讯的话,请一次就提供完整的,不然我问你回答,
这样效率实在太烂了。网路讨论不是这样用的。
其次,碰到奇怪的问题,第一件事就是要看 error log.
如果 apache 提供的资讯太少,就换 mongrel, log 越详细越好。
我刚刚稍微瞥了一下出问题的部份:
actionpack-2.0.2/lib/action_controller/request.rb: 548
节录上下程式码:
c = if bufsize < content_length
body.read(bufsize)
else
body.read(content_length)
end
if c.nil? || c.empty?
raise EOFError, "bad content body"
end
buf.concat(c)
content_length -= c.size
问题是这边 raise 了 EOFError, 说预期要有的 data 读不到。
很可能就是 content_length 长於实际上要有的 data.
你说,图片在 10k ~ 20k 有比较高的机率可以传上去,
那很可能就是你的 server 碰到 http request 本身含有比较大量的资料时,
就整个被剪掉了?为什麽会有这种状况,我不知道。
比方说,是否有防火墙?router 运作是否正常?
ruby 有没有正确安装?是否 IO 的部份没灌好?
甚至是,server 记忆体够用吗?会不会不够了?
像是这些资讯你都没有提供,所以我这边也只能质疑有可能而已。
shelary 大也问了两个问题,是否权限有设定好?
你的 rails process 有权限写入硬碟吗?你的硬碟够用吗?
可能问题实在太多了... 所以提供的资讯,一定要越完整越好。
所以所以,你先找找看为什麽 request 资讯有所遗失吧。
也可以换成 webrick, thin, lighttpd 等等 server 试试。
交叉比对或许能找到问题。例如,真的是 ruby 坏掉了,
还是根本就是网路有问题?甚至是你 linux 哪里没灌好...
--
In Lisp, you don't just write your program down toward the language,
you also build the language up toward your program.
《Programming Bottom-Up》- Paul Graham 1993
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18
1F:推 fongse:谢谢你们^^我会再找看看问题的 07/05 18:15
2F:→ godfat:还有什麽发现的话欢迎继续讨论 :) 07/05 18:23