#ruby-on-rails #forms #file-upload #flickr
#ruby-on-rails #формы #загрузка файла #flickr
Вопрос:
Я использую Flickraw в своем тестовом приложении
Следуйте примеру,
Я могу загрузить файл, указав путь к файлу, но я хочу использовать помощник form_tag
Это мое мнение
= form_tag :upload_photo_to_Flickr , :multipart => true do
= hidden_field_tag :token, @upload_info[:token]
= label_tag "PHOTO"
= file_field_tag :photo
= submit_tag "Upload Photo"
Контроллер является
def upload_photo_to_Flickr
file_path = params[:photo]
flickr.upload_photo file_path , :title => "please" , :description=>"successfully"
end
Отображается сообщение об ошибке ArgumentError (неверное количество аргументов (1 вместо 0))
И я также пробую другой метод, используя read ,
def upload_photo_to_Flickr
file_path = params[:photo].read
flickr.upload_photo file_path , :title => "please" , :description=>"successfully"
end
Отображается сообщение об ошибке ArgumentError (строка содержит нулевой байт)
Параметры
{"photo"=>#<ActionDispatch::Http::UploadedFile:0x10ba37648
@original_filename="test.jpg",
@tempfile=#<File:/var/folders/wy/5yx_py3s02g8l0kw0frrpg_m0000gn/T/RackMultipart20111110-
1832-18ufrmm-0>,
@headers="Content-Disposition: form-data; name="photo";
filename="test.jpg"rnContent-Type: image/jpegrn",
@content_type="image/jpeg">,
"commit"=>"Upload Photo 350201236",
"token"=>"XXXX",
"authenticity_token"=>"o9PhVeE6u1MGfol/PvGQkLE8RCL5tJat 1AQlygGOKc=",
"utf8"=>"342234223"
}
Как получить путь к файлу?
Потому что это может работать следующим образом
def upload_photo_to_Flickr
file_path = "/Desktop/test.jpg"
flickr.upload_photo file_path , :title => "please" , :description=>"successfully"
end
Или я должен попробовать другой метод, чтобы получить путь к файлу вместо form_tag?
Ответ №1:
Я нахожу решение!
В контроллере, используя
flickr.upload_photo(параметры [:photo].tempfile.path)