在我的Rails應用程序中,我使用Paperclip上傳照片並將它們存儲在S3中。所以我想把這個功能帶到我的iOS應用中。我使用this gist在RubyMotion應用中上傳圖片上傳,但速度令人難以置信。在回形針中看到這個日期問題後,我嘗試了一種不同的方法:https://github.com/thoughtbot/paperclip/issues/254#issuecomment-321507。RubyMotion使用Formotion和BubbleWrap將圖像從iOS上傳到Rails/S3
因此,我嘗試使用BubbleWrap的:form_data
:format
並傳遞UIImage.UIImageJPEGRepresentation(@form.render[:photo], 1)
,而不是看看是否會加快速度。但它不起作用。看起來好像所選的照片實際上沒有正確渲染,因爲我在服務器中沒有看到任何照片參數。 UIImage.UIImageJPEGRepresentation(@form.render[:photo], 1)
的輸出看起來不正確。
我的Formotion形式:
@form = Formotion::Form.new({
title: "Settings",
sections: [{
title: "Personal Information",
rows: [{
title: "Photo",
type: :image,
key: :photo,
value: @profile_photo
}, {
title: "Name",
type: :string,
placeholder: "Name",
key: :name,
value: @profile['name']
}]
}]
})
我的氣泡布PUT以更新的姿態:
profile_photo = UIImage.UIImageJPEGRepresentation(@form.render[:photo], 1)
data = {
'profile[name]' => @form.render[:name],
'profile[photo]' => profile_photo,
'user[api_token]' => CONFIG.user.api_token,
_method: 'PUT'
}
BW::HTTP.post("#{DEFAULT_URL}/profiles/#{CONFIG.user.profile_id}", { format: :form_data, payload: data }) do |response|
parsed_response = BW::JSON.parse(response.body.to_str)
if response.ok?
@data = parsed_response
self.dismissViewControllerAnimated(true, completion:lambda { parent.load_profile() })
else
App.alert("#{parsed_response.first}")
end
end
所以我的問題是:我必須編碼與.pack像要點圖像顯示(「M0 「)?有沒有辦法通過我傳遞給服務器的所有二進制數據加速這個過程?
看起來像現在是從BubbleWrap轉移到AFMotion的時候了。謝謝! – tvalent2
@ tvalent2如果此答案適合您,請將答案標記爲已接受! – siekfried