作者shelary (喵小咩的新项圈)
看板Ruby
标题Re: [问题] 无法上传档案(但win下可以)
时间Sun Jul 6 00:31:53 2008
如果问题是发生在某台主机..
而且小档案都几乎可以上传的话
那你的问题很可能是出在 chunked
你可以在 google 搜寻 "
http chunk" 找到相关资料
主要是当档案较大时.. http协定会把它拆成数个 chunk
建议你检查 apache 版本 及 rails 各套件版本是否相容
然後看一下
gem list 里是否有
cgi_multipart_eof_fix (2.5.0) 这个套件
然後我有看到你的 model 是用 file_column :p_image
你是用资料库存吗? 如果是,请确定你资料库使用的栏位有足够大能放档案
如果你要用资料库存档案..请用 LONGBLOB (但小妹非常不建议用资料库存)
而我自己则不是用这种方法
我是重新定义 image=
例如:
# model
def image=(file)
# 检查档案长度是否为 0
return if file.length == 0
# 检查是否为 jpg gif png 档
return unless /^image\/(p?jpeg|gif|(x-)?png)$/i.match(file.content_type.strip)
# 取得要存放档案的完整路径
fullpath = "#{RAILS_ROOT}/public/images/#{file.original_filename}"
# 将档案写入硬碟(必须注意 linux 目录权限是否为 777)
File.open(fullpath, "wb") { |f| f.write(file.read) }
# 将档名存入 model 里 image 栏位
write_attribute(:image, file.original_filename)
end
# controller
m = Picture.new
m.image = params[:p_image]
m.save
我用 rails 2.0.1 在 apache 2.2.6 做档案上传
在数种主机测试都没出过任何问题
提供你参考
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.3.21
※ 编辑: shelary 来自: 122.118.3.21 (07/06 00:33)
1F:→ fongse:file_column :p_image 是file_column需要的, 07/06 00:35
2F:→ fongse:存进资料库的是档名而已 07/06 00:35
3F:→ fongse:apache是直接用apt-get 安装的2.2.4版本.. 07/06 01:07
4F:推 godfat:1.8.6 好像不用 cgi_multipart_eof_fix, 不过... 07/06 01:09
5F:→ godfat:这边好像真的像是 multipart eof 有问题 07/06 01:10
6F:→ fongse:暂时的应急方式也只能请他们用超连结图片ˊˋ 07/06 11:03