您好, , 海量一手媒体资源,专业、正规、高效,为企业提供一站式营销推广服务!
温馨提示
运营小帮手
一站式互联网营销服务平台
  全国免费咨询热线
0755-23071973
运营小帮手
软文发稿
PC端 选择媒体
更方便、更快捷!
查看媒体价格
软文发布、软文代写、百科制作、问答营销、微信营销、微信营销
查看媒体价格
当前位置: 运营小帮手首页 > 新闻中心 > 文章正文

iOS客户端上传图片thinkphp后台接收

今天做了一下thinkphp5+iOS端图片上传功能,刚开始做的时候遇到很多问题,一直以来都是搞网站上传图片,后台接收,这种比较好搞。今天尝试做的时候遇到很多问题,今天记录下来,防止以后再遇到同样的坑。

iOS客户端表单提交

首先是iOS客户端上传图片,调用的是Alamofire库的api,以表单形式提交:

而需要上传的图片的data是这样的:

letdata=UIImageJPEGRepresentation(image,0.5)

因为我们是以表单文件形式提交的图片, 那么后台就可以通过$_FILES接收到文件上传变量,是一个二维数组,第一维保存上传的文件的数组,第二维保存文件的属性,包括类型、大小等。要实现上传文件,必须修改权限为加入可写 chmod -R 777 目标目录

到此,客户端就完成了,接下来就是看服务器如何接收了!

后台thinkphp5接收

后台要告诉前端接收的名称叫什么,这里叫image,如果名称不对上,也拿不到的!

publicfunctionupload(){
$file=request()->file('image');
if(!$file){
returnjson(['success'=>'0','message'=>'图片接收不到']);
}

$info=$file->move(ROOT_PATH.'public'.DS.'uploads');
if($info){
$savename=$info->getSaveName();
$filename=$info->getFilename();
$data=[
'filename'=>$filename,
'savename'=>$savename,
];
$id=db('resource')->insertGetId($data);
if($id){
returnjson(['success'=>'1','message'=>'上传成功','pid'=>$id]);
}
}

returnjson(['success'=>'0','message'=>'上传失败']);
}

遇到的坑

iOS端上传图片的时候,这么写会让后台接收不到图片文件:

letfilename=String(Date().timeIntervalSince1970)+".jpeg"
multipartFormData.append(data,withName:"image")
//或者
multipartFormData.append(data,withName:"image",mimeType:"image/jpeg")

不传文件名称参数就不可以接收到了,不太明白原因!

关键词:

猜您可能需要的服务: