0

次のように、ファイル(画像ファイルなど)をRestfulサーバーにアップロードしようとしています:

curl -X POST -H "Content-Type: multipart/form-data; boundary=----------------------------4ebf00fbcf09" --data-binary @sample.jpg http://localhost:3000/test

ただし、リクエストは Restful サーバー リソースによって処理されていないようです。

  • ファイル (小さいものと大きいもの) を Spring Web リソースにアップロードする方法
  • 「添付」タイプのアップロードは、単純なフォームのアップロードによるアップロードとはまったく異なりますか?
  • Content-Type の場合multipart/form-data; boundary=...: "image/jpeg" などの実際のコンテンツ タイプを取得するにはどうすればよいですか?

これは、私の Web リソースのコード スニペットです。

          try 
          {
            ServletFileUpload upload = new ServletFileUpload();
            FileItemIterator fileIterator = upload.getItemIterator(req);
            while (fileIterator.hasNext()) {
                FileItemStream item = fileIterator.next();
                byte[] content = ByteStreams.toByteArray(item.openStream());
            }
             ...
          }

私の懸念は、コードがサポートできるクライアント側アップロードのタイプです。Rest Console Chrome プラグインを使用し、このコードで動作する添付ファイルをアップロードしますが、上記の cURL コードは動作しません。

また、FileItemIteratorから取得できる可能性のある は何HttpServletRequestですか?

これが私の安らかな Web サービス リソースの完全なコードです: http://bit.ly/QwTOLw

4

1 に答える 1

3

Springのマルチパート(ファイルアップロード)サポートに関するSpringマニュアルのセクションを参照することをお勧めします。コンテキストでBeanが宣言されていることを確認しMultipartResolver、ファイルをフォームバッキングオブジェクトとしてマッピングすることを検討してください。MultipartFileこれにより、Springがマルチパートデータ自体の解決/読み取りを処理できるようになります(FileItemIterator、ServletFileUploadなどを自分で解析しようとするのではありません)。

于 2012-09-09T16:17:22.810 に答える