Re: [問題] 無法上傳檔案(但win下可以)

看板Ruby作者 (喵小咩的新項圈)時間16年前 (2008/07/06 00:31), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串7/8 (看更多)
如果問題是發生在某台主機.. 而且小檔案都幾乎可以上傳的話 那你的問題很可能是出在 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)

07/06 00:35, , 1F
file_column :p_image 是file_column需要的,
07/06 00:35, 1F

07/06 00:35, , 2F
存進資料庫的是檔名而已
07/06 00:35, 2F

07/06 01:07, , 3F
apache是直接用apt-get 安裝的2.2.4版本..
07/06 01:07, 3F

07/06 01:09, , 4F
1.8.6 好像不用 cgi_multipart_eof_fix, 不過...
07/06 01:09, 4F

07/06 01:10, , 5F
這邊好像真的像是 multipart eof 有問題
07/06 01:10, 5F

07/06 11:03, , 6F
暫時的應急方式也只能請他們用超連結圖片ˊˋ
07/06 11:03, 6F
文章代碼(AID): #18Rw7wCv (Ruby)
文章代碼(AID): #18Rw7wCv (Ruby)