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;
}

后面循环上传就可以了。

上传成功
保存入库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,561评论 18 139
  • 作者: 惟湛 如何调整ABAP程序的性能(copy) 7、两个内表添加使用批量增加代替逐行不推荐Loop at i...
    SmalltalkVoice阅读 7,422评论 7 18
  • 一、项目目标 搭建一个高可用web集群网站 二、项目规划 2.1 ip地址规划 2.2 拓扑图 2.3 相关说明 ...
    夏日之光阅读 3,350评论 0 1
  • 以前看过很多篇故事,故事里的人总是会有一些无法倾诉,只能埋藏在心底用来折磨自己的事。我想不明白,为什么不说,说...
    Berryry阅读 239评论 0 1
  • 那天晚上,我正在复习着功课,突然手机响了,打破了这一切的宁静。手机那头传来小姨的问候声,本以为只是她无聊给我...
    fatcate阅读 261评论 2 0