2

インターネット上には、他の言語の HTTP POST リクエストでファイル ストリームを送信する方法に関するドキュメントがたくさんありますが、Scalatra ではそうではありません。

トピックへ: Scalatra post() を介して、イメージをバイト配列またはファイル ストリーム (ずさんな用語で申し訳ありません。私はまったくの初心者です) として送信したいと考えています。バイト配列を取り、それを .jpg 画像に変換してサーバーに保存するバックエンド Java 関数が既にあります。私がはっきりしていないのは、Scalatra でこれを行う方法の正確な構文です。

それが私の投稿リクエストのようです:

    val imageInBytes = ... //obtain image in bytes
    post("/images", ("image" -> imageInBytes))

ただし、Eclipse は、オーバーロードされたメソッド post を (String, (String, Array[Byte])) に適用できないと言っています。

サーバー側:

    post("/images"){
           contentType = "image/jpeg"  //for displaying the image
           val imInBytes = params("image")  //obtain data from request body
           //do something with it.
     }

どんな助けでも大歓迎です!

4

1 に答える 1

0

画像バイトをbase64 URLエンコードする必要があります。その後、paramsバッグから取得できます。

生の画像をエンドポイントに投稿してから、inputStream を読み取ることもできます。

于 2012-07-16T17:53:27.230 に答える