Temelde JavaScript olan Electron'u kullanarak bir masaüstü uygulaması yapıyorum. İçinde Bir masaüstü uygulamasından Rails API'ye gönderilen bir görüntü nasıl alınır
, böyle benim Raylar API bir görüntü yolluyorum: (basitleştirilmiş)var myHeaders = new Headers();
myHeaders.append('Authorization', 'Token token=redacted');
myHeaders.append('Content-Type', 'application/json');
myHeaders.append('Accept', 'application/json');
...
var formData = new FormData();
formData.append("img", base64EncodedImage);
var myPost = {method: 'POST', headers: myHeaders, body: formData}
fetch("url", myPost)
benim Raylar konsolunda
, görüyorum:
{"REMOTE_ADDR"=>"127.0.0.1", "REQUEST_METHOD"=>"POST", "REQUEST_PATH"=>"/task/screenshot", "PATH_INFO"=>"/task/screenshot", "REQUEST_URI"=>"/task/screenshot", "SERVER_PROTOCOL"=>"HTTP/1.1", "HTTP_VERSION"=>"HTTP/1.1", "HTTP_HOST"=>"localhost:3000", "HTTP_CONNECTION"=>"keep-alive", "CONTENT_LENGTH"=>"454856", "HTTP_ACCEPT"=>"application/json", "HTTP_ORIGIN"=>"null", "HTTP_USER_AGENT"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) testivate-research-gigs/1.0.0 Chrome/49.0.2623.75 Electron/0.37.5 Safari/537.36", "HTTP_AUTHORIZATION"=>"Token token=redacted", "CONTENT_TYPE"=>"application/json", "HTTP_ACCEPT_ENCODING"=>"gzip, deflate", "HTTP_ACCEPT_LANGUAGE"=>"en-US", "rack.url_scheme"=>"http", "SERVER_NAME"=>"localhost", "SERVER_PORT"=>"3000", "QUERY_STRING"=>"", "rack.tempfiles"=>[#<Unicorn::TmpIO:/var/folders/k9/vnpft_6d7qs6xmdb9_4svvmw0000gn/T/0.19309304750270062>], "rack.input"=>#<Rack::Lint::InputWrapper:0x007fe1de317000 @input=#<Unicorn::TeeInput:0x007fe1de31d950 @len=454856, @chunked=false, @socket=#<Kgio::Socket:fd 7>, @parser=#<Unicorn::HttpParser:0x007fe1db08ce00>, @buf="", @rbuf="------WebKitFormBoundaryxkkhvE17qoI5ozlK\r\nContent-Disposition: form-data; name=\"img\"\r\n\r\ndata:image/jpeg;base64,iVBORw0KGgoAAAANSUhEU...
Ancak resme ulaşamıyorum.
olduğunu> request.body.read
> request.body.rewind
> request.body.read
> request.env
, ben komutların çoğu boş yanıtları almak ve ben, request.env
yazdıktan sonra sonra sadece dönmeden orada süresiz asılı: Bu benim Pry kullanarak denetleyicisi içine damla ne görüyorum olduğunu Komut istemi.
Resme nasıl ulaşabilirim?
Teşekkürler.
BTW, POST'ları alan ancak gömülü görüntülerle karşılaşmayan diğer işlemler mükemmel şekilde çalışıyor. Önceden, bu eylem XMLHttpRequest()
'u fetch()
kullanmıyorken de mükemmel şekilde çalışıyordu, ancak Google Chrome Uzantımı bir Electron uygulamasına çevirmek için geçiş yapmak zorunda kaldım.
doğrudan S3 ziyade S3-Raylar aracılığıyla benim resim yükleyerek kendim için bu sorunu çözmüş
GÜNCELLEME. Sadece çalışır, ancak uygulama yoluyla gitmekten daha hızlıdır, şimdi sadece görüntüyü bulmak için nereye bakacağımı söylemek zorundayım. Ama asıl meselem olarak ele alınmadığı için, bu sorudan ve ödül açıklığından ayrılıyorum. Belki birisi bunu çözecek, ödül alacağını iddia edecek ve birisinin yolunda faydalı bulacağı bir cevap yazacaktır.
Görüntüyü raylarda saklamak, herhangi bir gemiyi nasıl kullanırsınız? – 7urkm3n
Görüntü yükleme http: // stackoverflow için ataç gem'i kullanın.com/questions/35765578/rails-api-paperclip-uploading-image-converting-it-to-base-64-ve-saving-it-ve/35766241 # 35766241 –
parametreden süzülmüş gibi görünüyor. – joewoodward