0

Rubymotionを使用してiOSアプリを構築しています。ユーザーがカメラで写真を撮ってから、BubbleWrap Httpモジュール(またはそれ以上?)を使用してRails 3バックエンド(ペーパークリップ付き)にアップロードできるようにする必要があります。

これどうやってするの?

これは私のコードです:

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)

これは私のアップロードコードです:

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
4

1 に答える 1

1

画像のアップロードは、あなたが行ったような GET リクエストではなく、POST リクエストを介して行う必要があります。ほとんどの Web サーバーでは、GET リクエストのサイズに制限があり、通常は 8k です。詳細については、こちらをお読みくださいHTTP GET リクエストの最大長は? ですので、画像には不向きです。

泡の動きを試してみて、サーバー上のログ ファイルでリクエストを調べて、何が表示されるかを確認してください。Rails 自体から、つまりコントローラにアップロードする Web ページから作成されたリクエストのように見えるようにしてください。

したがって、リクエストを POST に変更して、どのようなエラー メッセージが表示されるかを人々に知らせることができます。

于 2013-01-07T01:09:45.760 に答える