rails ajax上传文件以及controller处理

ajax提交文件
var formData = new FormData();
formData.append('file', $('input[name="file"]')[0].files[0]);
$.ajax({
  url: '这里填action地址',
  type: 'POST',
  cache: false,
  data: formData,
  processData: false,
  contentType: false,
});
 
 
文件
#将表单提交的文件上传到服务器工程下
def upload_file(file)
  if !file.original_filename.empty?
    @filename = file.original_filename
    #设置目录路径,如果目录不存在,生成新目录
    Dir.mkdir("#{Rails.root}/public/upload") unless File.exist?("#{Rails.root}/public/upload")
    #写入文件
    ##wb 表示通过二进制方式写,可以保证文件不损坏
    File.open("#{Rails.root}/public/upload/#{@filename}", "wb") do |f|
       f.write(file.read)
    end
    return @filename
  end
end

  

图片
def upload_file(file)
  @filename = file.original_filename
  Dir.mkdir("#{Rails.root}/public/upload") unless File.exist?("# 
  {Rails.root}/public/upload")
  image_path = "#{Rails.root}/public/upload/#{@filename}"
 
  data = File.read(file.tempfile)
  img = File.new(image_path, "w+")
  if img
    img.syswrite(data)
  end
  img.close
  return @filename
end

  

 
 

posted @ 2018-04-26 14:58  viletyy  阅读(211)  评论(0)    收藏  举报