看板 Ruby 關於我們 聯絡資訊
如果問題是發生在某台主機.. 而且小檔案都幾乎可以上傳的話 那你的問題很可能是出在 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)
fongse:file_column :p_image 是file_column需要的, 07/06 00:35
fongse:存進資料庫的是檔名而已 07/06 00:35
fongse:apache是直接用apt-get 安裝的2.2.4版本.. 07/06 01:07
godfat:1.8.6 好像不用 cgi_multipart_eof_fix, 不過... 07/06 01:09
godfat:這邊好像真的像是 multipart eof 有問題 07/06 01:10
fongse:暫時的應急方式也只能請他們用超連結圖片ˊˋ 07/06 11:03