Ajax-запрос сохранения файлов с помощью Rails - PullRequest
2 голосов
/ 26 ноября 2010

Я довольно новичок в ruby ​​на рельсах и пытаюсь реализовать функцию перетаскивания файлов с помощью dnduploader.js.Я получаю файл для отправки на контроллер, но я не уверен, как сохранить файл в контроллере в локальной файловой системе.Вот фрагменты моего кода, если кто-то может помочь.Спасибо.

Вот ссылка, которую я использую, чтобы помочь мне: http://onehub.com/blog/posts/designing-an-html5-drag-drop-file-uploader-using-sinatra-and-jquery-part-1/

$("#drop_target").dndUploader({
    url : "/upload",
    method : "PUT"
});

if (dataTransfer.files.length > 0) {
    $.each(dataTransfer.files, function ( i, file ) {
        var xhr    = new XMLHttpRequest();
        var upload = xhr.upload;

        xhr.open($this.data('method') || 'POST', $this.data('url'), true);
        xhr.setRequestHeader('X-Filename', file.fileName);

        xhr.send(file);
    });
};

Здесь я не знаю, что делать?Я вижу, что запрос на загрузку происходит внутри Chrome, но я не уверен, как сохранить файл в файловой системе.

def upload
  render :text => "uploaded #{env['HTTP_X_FILENAME']} - #{request.body.read.size} bytes -- #{params[:upload].to_yaml}"
end

1 Ответ

2 голосов
/ 26 ноября 2010

Кажется, что файл загружен как «request.body». Таким образом, вы можете сделать что-то вроде следующего:

fp = File.open("/local_path/local_file", "wb") 
fp.write(request.body.read) 
fp.close 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...