Moi klienci próbują przesłać obraz z telefonów Blackberry i Android. Nie lubią publikować a) parametrów formularza lub b) wiadomości wieloczęściowych. Co chcieliby zrobić, to POST do adresu URL zawierającego tylko dane z pliku.Przesyłanie nieprzetworzonego pliku do Rails przy użyciu Carrierwave
Coś takiego można zrobić w curl: curl -d @google.png http://server/postcards/1/photo.json -X POST
Chciałbym przesłanego na zdjęcie, aby umieścić w atrybucie zdjęć modelu pocztowe i do odpowiedniego katalogu.
Robię coś takiego w kontrolerze, ale obraz jest uszkodzony w katalogu. Robię ręczną zmianę nazwy pliku do „PNG” na teraz:
def PostcardsController < ApplicationController
...
# Other RESTful methods
...
def photo
@postcard = Postcard.find(params[:id])
@postcard.photo = request.body
@postcard.save
end
wersji:
class Postcard < ActiveRecord::Base
mount_uploader :photo, PhotoUploader
end
Więc prawie dokładnie to jest to, czego potrzebowałem. Drobne szczegóły: nowo utworzone zdjęcie (klasy UploadedFile) wymaga ustawienia "original_filename" na coś. Carrierwave spodziewa się, że coś tam będzie, nawet jeśli są to fałszywe dane. Moim głównym problemem wydaje się być moje polecenie curl, ponieważ nie wysyłałem poprawnie danych. – jevy
Ktoś mnie zapytał. Dla polecenia curl użyłem tego: 'curl --form" image [[email protected];] "http: // server/images.json' – jevy