Как POST-файлы из HTML5 Drag-Drop в приложение Rails 3 и скрепку?

Я пытаюсь получить некоторые функции перетаскивания HTML5 в приложении Rails 3 с помощью Paperclip. Итак, в основном:

  1. Один или несколько файлов являются перетаскивание на DIV
  2. Файлы помещаются в действие Rails с помощью POST (вместе или по одному)
  3. Действие Rails сохраняет каждый файл как новое вложение в Paperclip

Прямо сейчас единственный способ, которым я могу получить эту работу можно, отправив XMLHttpRequest с данными файла и заставив мое действие Rails прочитать request.raw_post ... это не работоспособное решение, потому что мне нужно отправить дополнительные параметры POST и токен аутентичности.

Вот что у меня есть:


Drag and drop upload

Drop Files Here

И действие моего контроллера:

class ImagesController < ApplicationController

  # ... Normal REST actions 

  def raw
    name = "tmp_image.png"
    data = request.raw_post
    @file_content = File.open("#{Rails.root.to_s}/tmp/#{name}", "wb") do |f| 
      f.write(data)
    end
    @image = Image.new(:attachment => File.new("#{Rails.root.to_s}/tmp/#{name}"))
    @image.save
    File.unlink("#{Rails.root.to_s}/tmp/#{name}")
    render :text => 'success'    
  end
end

Итак, как правильно отправить файлы перетаскивания POST в мое приложение с дополнительными параметрами?

(Если это поможет,У меня есть весь эксперимент в виде общедоступного репозитория GitHub здесь )

18
задан Callmeed 21 September 2010 в 22:28
поделиться