2016-05-03 4 views
0

Я пытаюсь загрузить файл на ресурс webmachine, используя PUT. Идея заключается в обновлении ресурса шаблона с помощью file_id.Как принять многостраничный файл PUT в webmachine-ruby

module App::Resources 
    class UpdateTemplateResource < TemplateResource 

    def allowed_methods 
     %W(PUT) 
    end 

    def content_types_accepted 
     # What to do here? 
    end 

    private 

    def template_id 
     request.path_info[:id] 
    end 

    def template 
     @template ||= ::App::Models::Template.find_latest_version_by_guid(id) 
    end 
    end 
end 

Я нашел примеры, чтобы принять запрос json типа, но не MULTIPART. Файл не сохраняется на сервере, а конвертируется и отправляется в другую службу для хранения.

+0

Вы используете AJAX, чтобы загрузить файл? –

+0

@GustavoRubio Да, я. – gmuraleekrishna

ответ

0

Объект имеет корпус, включающий в себя многопрофильный запрос с границами. Если мы знаем, какой тип файла отправляется, мы можем его разобрать.

Поля тела включают в себя тип содержимого, имя файла и связанные с ним параметры. Затем запускается фактический файл.

Если JSON

lines = [] 
request.body.to_io.each {|l| lines << l if l =~ /\[/ } 
json = JSON.parse(lines[0]) 

Если PDF-файл

lines = request.body.to_io.read 
pdf_as_string = lines.match(/^(\%PDF-)(.*\s)*(\%\%EOF\s)$/)[0] 

 Смежные вопросы

  • Нет связанных вопросов^_^