0

Play Framework 2.0 を使用しています。REST 要求を処理します。ファイルを POST リクエストに渡し、Contoller で処理できるようにしたいと考えています。

私は次のようになりました:

GET /customer/:id/photos    controllers.PhotosController.addPhoto(id: Integer, page: String)

Controller コードでファイルの内容にアクセスしようとしましたが、うまくいきませんでした。

次の方法で POST リクエストを送信していました。

curl.exe -X GET localhost:9000/customer/23/photos?page=Sun.jpg

このケースを処理する方法はありますか?

4

3 に答える 3

0

Play 2.0では、次のようにします。

コントローラー(単なる例):

public static Result addPhoto(Integer id){
    MultipartFormData body = request().body().asMultipartFormData();
    FilePart file = body.getFile("page");
    System.out.println(file.getFilename());
    System.out.println(file.getFile().getAbsoluteFile());
    return ok();
}

ルート

POST    /addphoto/:id   controllers.PhotosController.addPhoto(id: java.lang.Integer)

curlコマンド

curl --header "enctype -> multipart/form-data" -F page=@/path/to/file localhost:9000/addphoto/23
于 2012-10-10T20:19:58.763 に答える
0

コントローラーは次のようになるはずです。

public static void addPhoto(Integer id, File page){}

ルート:

POST /customer/:id/photos controllers.PhotosController.addPhoto(id: Integer, page: File)

テスト リクエストは次のようになります。

curl.exe -F page=@Sun.jpg localhost:9000/customer/23/photos

(プレイ 1.2.3 でテスト済み)

于 2012-04-12T15:29:26.247 に答える
0
//add this line in you controller

static play.data.Form<Model> modelForm = form(Model.class);

public static Result addPostSave(){
    try{
      MultipartFormData body = request().body().asMultipartFormData();
      FilePart picture = body.getFile("picture");
      File pic = picture.getFile();
if(filledForm.hasErrors()){
              return ok(addPost.render(postForm));
          }else{              
              Post post = new Post();
              post.picture = pic;
              post.save();
              return ok(index.render("The image is created"));
          }  
    }catch(IOException e){
       return ok(e.to_string)
    }    
}
于 2012-04-12T12:28:36.473 に答える