php android 图片上传,Android单图片上传,多图片上传(ThinkPhp接收)

之前曾经写过一个php接收图片的文章,但是感觉很乱,不规律。最近看了ThinkPhp框架,ThinkPhp的MVC结构十分清晰,其中还封装了文件上传类,数据库相关东西,十分好用。于是在毕设中决定采用ThinkPhp来写接口。

一、单文件上传。

客户端代码基本一致,只修改了服务端,采用了ThinkPhp接收。

//客户端的key为user_head

if ($_FILES['user_head']['error'] === 0) {

// 这是thinkPhp中Upload.class.php中的一些参数配置,其中都有注释,根据自己需求自己配置。

$cfg = array(

'rootPath' => './Public/user_head/', //保存根路径

'autoSub' => false, //自动子目录保存文件

'saveName' => $_FILES['user_head']['name'], //文件名

'saveExt' => 'jpg' //文件保存后缀,空则使用原后缀

);

// 设置附件的存储位置

$upload = new Upload($cfg);

// 上传文件

$z = $upload->uploadOne($_FILES['user_head']);

if (! $z) { // 上传错误提示错误信息

echo $this->error($upload->getError());

}

// 图片路径

$img_url = "IP地址" . $upload->rootPath . $z['savename'];

//后续可以将url存入数据库

二、多文件上传

多文件上传采用循环遍历,唯一不同的是客户端采用“一key多value”上传。

客户端的key为"images[]";(上传两张图片)

服务端接收 $files = $_FILES['images'];

通过var_dump打印结果发现为

array(5) {

["name"]=>

array(2) {

[0]=>

string(31) "com_eg_android_AlipayGphone.png"

[1]=>

string(20) "com_student_aynu.png"

}

["type"]=>

array(2) {

[0]=>

string(9) "image/png"

[1]=>

string(9) "image/png"

}

["tmp_name"]=>

array(2) {

[0]=>

string(24) "C:\xampp\tmp\phpB784.tmp"

[1]=>

string(24) "C:\xampp\tmp\phpB785.tmp"

}

["error"]=>

array(2) {

[0]=>

int(0)

[1]=>

int(0)

}

["size"]=>

array(2) {

[0]=>

int(6584)

[1]=>

int(34205)

}

}

这并不是我们想要的格式

我们想要的格式为:

Array

(

[0] => Array

(

[name] => com_eg_android_AlipayGphone.png

[type] => image/png

[tmp_name] => C:\xampp\tmp\phpB784.tmp

[error] => 0

[size] => 6584

)

[1] => Array

(

[name] => com_student_aynu.png

[type] => image/png

[tmp_name] => C:\xampp\tmp\phpB785.tmp

[error] => 0

[size] => 34205

)

)

其中需要转化一下,转换的代码为(key,value 换一下)

function reArrayFiles($file_post)

{

$file_ary = array();

$file_count = count($file_post['name']);

$file_keys = array_keys($file_post);

for ($i = 0; $i < $file_count; $i ++) {

foreach ($file_keys as $key) {

$file_ary[$i][$key] = $file_post[$key][$i];

}

}

return $file_ary;

}

后面循环上传就可以了。

6efe3913ffe8

上传成功

6efe3913ffe8

保存入库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值