rails图片上传的一个怪异现象

在做ror开发的时候,简直感觉就是在堆砌插件,于是决定放弃各种图片上传插件,自来来写写图片上传,感觉也不是太麻烦.

(一)把上传放在一个单独类中

 

代码
class  Upload    
  def uploadFile(file)   
    
if   ! file.original_filename.empty ?    
      @filename
= getFileName(file.original_filename)
      #images 
=  MiniMagick::Image. new (@filename)
      File.
new ( " #{RAILS_ROOT}/public/picture/#{@filename} " " wb " do   | f |    
        f.write(file.read)   
      end     
    end   
  end   
  
  def getFileName(filename)   
    
if   ! filename.nil ?    
      Time.now.strftime(
" %Y%m%d%H%M%S " +   ' _ '   +  filename   
    end   
  end        
end 
代码
def create
    @image 
=  Image. new ( params [:image])

    respond_to 
do   | format |
      
if  @image.save
        Upload.
new .uploadFile( params [:image][:src])
        flash[:notice] 
=   ' 图片上传成功 '
        format.html { redirect_to(new_admin_image_url) }
      
else
        format.html { render :action 
=>   " new "  }
      end
    end
  end

 

 

图片是传到服务器,可内容全部丢失了,生成了一个空白的图片.

(二)放在model中

 

代码
def src = (src)
      
if  src.size > 0  then
          @contents_size 
=  src.size
          @files_type 
=  src.content_type
          @files_data 
=  src.read
          @name 
=  getFileName(src.original_filename)
      end
  end

  def add_pic
      
if   true  then
        File.open(
" #{RAILS_ROOT}/public/picture/#{@name} " " wb " do   | f |    
          f.write(@files_data)   
        end
        #images 
=  MiniMagick::Image. new ( " #{RAILS_ROOT}/public/picture/ " + @name)   
        #images.resize 
" 30x30 "
        #images.write(
" #{RAILS_ROOT}/public/picture/output.jpg " )
        #self.update_attributes(:src 
=>  self.src)
      end
  end

 

 

代码
def create
    @image 
=  Image. new ( params [:image])

    respond_to 
do   | format |
      
if  @image.save
        
if   params [:image][:srcc].size > 0
            @image.add_pic
        end
        flash[:notice] 
=   ' 图片上传成功 '
        format.html { redirect_to(new_admin_image_url) }
      
else
        format.html { render :action 
=>   " new "  }
      end
    end
  end

 

这样生存的图片没有任何问题

你可能感兴趣的:(Rails)