Re: [問題] 無法上傳檔案(但win下可以)
如果問題是發生在某台主機..
而且小檔案都幾乎可以上傳的話
那你的問題很可能是出在 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
07/06 00:35, 1F
→
07/06 00:35, , 2F
07/06 00:35, 2F
→
07/06 01:07, , 3F
07/06 01:07, 3F
推
07/06 01:09, , 4F
07/06 01:09, 4F
→
07/06 01:10, , 5F
07/06 01:10, 5F
→
07/06 11:03, , 6F
07/06 11:03, 6F
討論串 (同標題文章)
完整討論串 (本文為第 7 之 8 篇):
2
29
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章