首页 > 解决方案 > 如何使用 Slim 框架从 android 客户端接收多部分文件?

问题描述

我使用来自 android 客户端的改造发送了图像文件和内容(文本),并试图将它们放在服务器端,但不能这样做,并且错误总是:它为空。请问如何使用#Retrofit 和 Slim 框架发送和接收图像?如果有人可以提供帮助,我将不胜感激。

............................................. 尝试发送来自android客户端的图像就像一个多部分文件,并使用苗条的方法(getUploadedFiles)接收它,但它不起作用。

 @Multipart
    @POST("createPostWithImage")
    Call<DefaultResponse> uploadTestPost(
            @Part("desc") RequestBody desc,
            @Part MultipartBody.Part image
    );
$app-> post('/createPostWithImage', function(Request $request, Response $response) {

    $directory = __DIR__.'../photos/1';
    $uploadedFiles = $request->getUploadedFiles();
    $uploadedFile = $uploadedFiles['photo'];
    $uploadedFile->moveTo($directory);


});

获取从android客户端发送的文件并将其保存到特定文件夹中。

标签: androidslim

解决方案


$app->post('/file', function($request,$response) {
try{
     $directory = $this->get('upload_directory');
     $uploadedFiles = $request->getUploadedFiles();
     $uploadedFile = $uploadedFiles['example1'];
     $extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION);
    $basename =  mt_rand(10000000, 99999999);
    $uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $basename.'.'.$extension);
return $response->withJson(array('message' =>$uploadedFile),200);
}
catch(\Exception $ex){
       return $response->withJson(array('error' => $ex->getMessage()),422);
}
});    


//minimal code to get started ... 

推荐阅读