Android單圖片上傳,多圖片上傳(ThinkPhp接收)

之前曾經(jīng)寫過(guò)一個(gè)php接收?qǐng)D片的文章,但是感覺很亂,不規(guī)律。最近看了ThinkPhp框架,ThinkPhp的MVC結(jié)構(gòu)十分清晰,其中還封裝了文件上傳類,數(shù)據(jù)庫(kù)相關(guān)東西,十分好用。于是在畢設(shè)中決定采用ThinkPhp來(lái)寫接口。

一、單文件上傳。

  • 客戶端代碼基本一致,只修改了服務(wù)端,采用了ThinkPhp接收。

    //客戶端的key為user_head
    if ($_FILES['user_head']['error'] === 0) {
           // 這是thinkPhp中Upload.class.php中的一些參數(shù)配置,其中都有注釋,根據(jù)自己需求自己配置。
           $cfg = array(
               'rootPath' => './Public/user_head/',                            //保存根路徑
               'autoSub' => false,                                                           //自動(dòng)子目錄保存文件
               'saveName' => $_FILES['user_head']['name'],           //文件名
               'saveExt' => 'jpg'                      //文件保存后綴,空則使用原后綴
           );
           // 設(shè)置附件的存儲(chǔ)位置
           $upload = new Upload($cfg);
           // 上傳文件
           $z = $upload->uploadOne($_FILES['user_head']);
           if (! $z) { // 上傳錯(cuò)誤提示錯(cuò)誤信息
               echo $this->error($upload->getError());
           }
           // 圖片路徑
           $img_url = "IP地址" . $upload->rootPath . $z['savename'];
           //后續(xù)可以將url存入數(shù)據(jù)庫(kù)
    

二、多文件上傳

多文件上傳采用循環(huán)遍歷,唯一不同的是客戶端采用“一key多value”上傳。
客戶端的key為"images[]";(上傳兩張圖片)
服務(wù)端接收 $files = $_FILES['images'];
通過(guò)var_dump打印結(jié)果發(fā)現(xiàn)為

                                                                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
    )
)

其中需要轉(zhuǎn)化一下,轉(zhuǎn)換的代碼為(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;
}

后面循環(huán)上傳就可以了。

上傳成功
保存入庫(kù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評(píng)論 19 139
  • 作者: 惟湛 如何調(diào)整ABAP程序的性能(copy) 7、兩個(gè)內(nèi)表添加使用批量增加代替逐行不推薦Loop at i...
    SmalltalkVoice閱讀 7,817評(píng)論 7 18
  • 一、項(xiàng)目目標(biāo) 搭建一個(gè)高可用web集群網(wǎng)站 二、項(xiàng)目規(guī)劃 2.1 ip地址規(guī)劃 2.2 拓?fù)鋱D 2.3 相關(guān)說(shuō)明 ...
    夏日之光閱讀 4,288評(píng)論 0 1
  • 以前看過(guò)很多篇故事,故事里的人總是會(huì)有一些無(wú)法傾訴,只能埋藏在心底用來(lái)折磨自己的事。我想不明白,為什么不說(shuō),說(shuō)...
    Berryry閱讀 286評(píng)論 0 1
  • 那天晚上,我正在復(fù)習(xí)著功課,突然手機(jī)響了,打破了這一切的寧?kù)o。手機(jī)那頭傳來(lái)小姨的問(wèn)候聲,本以為只是她無(wú)聊給我...
    fatcate閱讀 300評(píng)論 2 0

友情鏈接更多精彩內(nèi)容