android - 如何使用 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客户端发送的文件并将其保存到特定文件夹中。
解决方案
$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 ...
推荐阅读
- reactjs - 如何整合外部反应
- java - java容器对象交换数组方法
- javascript - 我的两个 Jquery 脚本相互干扰
- python - Tensorflow seq2seq 聊天机器人总是给出相同的输出
- bash - 如何检查是否在 bash 中传入了空的命名参数?
- node.js - 完成从 express 中删除 api 后如何发出另一个 post 请求?
- gdb - 有和没有 GDB 的环境布局差异
- javascript - socket.io 代码组织和计时 ES6
- php - 我的 CSS 文件在我的 PHP 文件中不起作用
- laravel - 在 Chrome 中按下浏览器后退按钮时,laravel 表单为空