2012-12-11 2 views
0

Rubymotion을 사용하여 iOS 앱을 제작하고 있습니다. 사용자가 카메라로 사진을 찍은 다음 BubbleWrap Http 모듈 (또는 그 이상?)을 사용하여 Rails 3 백엔드 (Paperclip 포함)에 업로드 할 수 있도록해야합니다.Rubymotion으로 사진을 업로드하는 방법?

어떻게하면됩니까?

data = {access_token: TOKEN, id: task, image: image} 

    BubbleWrap::HTTP.get("#{URL}#{project}/message", {payload: data}) do |response| 
     if response.ok? 
     json = BubbleWrap::JSON.parse(response.body) 
     if json['total'] > 0 
      infos = json['taskinfos'].map {|ej| self.from_json(ej["taskinfo"])} 
      block.call(true, infos) 
     else 
      block.call(false, nil) 
     end 
     else 
     block.call(false, nil) 
     end 
    end 
+1

조나단, 잠재적 인 답변이 많은 매우 광범위한 질문을합니다. 나는 그들이 Stackoverflow에 적합한 지 모른다. –

+0

Jamon. 이것은 정말로 광범위한 질문이 아닙니다. 매우 좁은 Rubymotion 및 이미지 업로드입니다. –

+0

Rubymotion을 배우려고하는데, 공식 문서가 부족하기 때문에 불행히도 많은 질문이있을 것입니다. –

답변

1

업로드 이미지 :

controller = UIImagePickerController.alloc.init 
controller.sourceType = UIImagePickerControllerSourceTypeCamera 
controller.mediaTypes = [KUTTypeImage] 
controller.allowsEditing = true 
controller.delegate = self 

self.navigationController.presentModalViewController(controller, animated:true) 

나는 샷을 촬영 한 후 사용이을 :

metadata = info.objectForKey(UIImagePickerControllerMediaMetadata) 
the_image = info.objectForKey(UIImagePickerControllerOriginalImage) 

image = view.viewWithTag 3 
image.image = the_image 

picker.dismissModalViewControllerAnimated(true) 

이 내 업로드 코드가

내 코드입니다 POST 요청을 통해 수행되어야합니다. 당신이 한 것처럼 GET 요청이 아닙니다. 대부분의 웹 서버는 GET 요청의 크기에 제한이 있으며 일반적으로 8k입니다. 자세한 내용은 여기 maximum length of HTTP GET request?을 참조하십시오. 따라서 이미지에는 적합하지 않습니다.

버블 모션으로 놀고 서버의 로그 파일에있는 요청을보고 어떤 것이 나오는지 확인하십시오. 요청을 레일 자체에서 만든 요청, 즉 컨트롤러에 업로드하는 웹 페이지처럼 보이게하십시오.

그래서 요청을 POST로 변경하고 어떤 오류 메시지가 표시되는지 사람들에게 알릴 수 있습니다.