2008-03-25 rails 测试题(00006)

2008-03-25 rails 测试题(00006)

Rails应用的文件上传,(ex,上传图片),存入mysql里面,并在一个模板里显示图片.
看到好几位会员问过这类问题,希望他们能来放出自己的答案。

快来各显神通吧。
不建议这类型的题目,按我的猜测
1:一般的同学都有自己喜欢的方案
2:目前支持的插件很多。
3:本身没有太多的有趣的东西,枯燥了点。
4:完整实现并没有太大的意思,我估计几乎没有人愿意完全实现之。

这以类型题目,个人觉得不适合放在这里,可以采用教学的模式写文章发表出来。
我做公司上传多种图片使用的代码:
 def create
 @company=Company.new(params[:company])
 if @company.save!
 if @production_image
 do_attach_upload(@production_image,@company.id,@company) 
 end
 end

 def do_attach_upload(production_image,id,company) 
  file_index = 0
  uploadeds = production_image
  @path=[]
  if uploadeds
  for uploaded in uploadeds 
   file_index = file_index + 1
   if uploaded.size>20*1024*1024
    flash[:notice] = "上传文件不能够超过20M."
    return 
   end
   unless uploaded.content_type =~ /image/
    flash[:notice] = "文件类型不对"
    return
   end
   base_folder = "/images/company/" + id.to_s + "/"
   base_folder1 = "/images/company/"
   if !File::exist?(base_folder1)
    Dir::mkdir(base_folder1)
   end
   if !File::exist?(base_folder)
    Dir::mkdir(base_folder)
   end
   
   if uploaded && uploaded.length > 0
    store_path = base_folder + file_index.to_s + ".jpg"
    @path<<store_path
    File.open(store_path, "wb") { |f| f.write( uploaded.read ) }
   end
  end 
  end
 @path_str=@path.join(',')
 company.path=@path_str
 company.save!
end
引用:
原帖由 martin 于 2008-3-26 10:51 发表
不建议这类型的题目,按我的猜测
1:一般的同学都有自己喜欢的方案
2:目前支持的插件很多。
3:本身没有太多的有趣的东西,枯燥了点。
4:完整实现并没有太大的意思,我估计几乎没有人愿意完全实现之。

...
引用:
原帖由 martin 于 2008-3-26 10:51 发表
不建议这类型的题目,按我的猜测
1:一般的同学都有自己喜欢的方案
2:目前支持的插件很多。
3:本身没有太多的有趣的东西,枯燥了点。
4:完整实现并没有太大的意思,我估计几乎没有人愿意完全实现之。

...
引用:
原帖由 drive2me 于 2008-3-26 21:22 发表



我认为不一定把所有的代码都写出来。只要把思路和关键的代码写出来,指出若干种解法就可以了。
对吧。

:)
引用:
原帖由 dong123qwe 于 2008-3-24 22:43 发表
Rails应用的文件上传,(ex,上传图片),存入mysql里面,并在一个模板里显示图片.
代码还不少