這篇文章給大家分享的是有關php接口傳輸圖片的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)建站的服務宗旨!把網站當作互聯(lián)網產品,產品思維更注重全局思維、需求分析和迭代思維,在網站建設中就是為了建設一個不僅審美在線,而且實用性極高的網站。創(chuàng)新互聯(lián)對網站建設、網站制作、網站制作、網站開發(fā)、網頁設計、網站優(yōu)化、網絡推廣、探索永無止境。
問題:APP上傳頭像,php作為API端應該如何接收圖片信息?
上傳部分的代碼不是問題,主要是server端如何才能接收到APP端的圖片信息。在B/S架構下,可以直接通過form表單設置enctype="multipart/form-data",$_FILES數組中就有了圖片信息。那么在C/S模式中,也是如此嗎?
解答1(見方式一): 一般是采用二進制流傳輸,客戶端傳的是二進制,服務器端接收,然后file_put_contents寫入文件就可以了。文件名格式,文件放哪里,這些自己定義。
解答2(見方式二):Android或者IOS客戶端模擬一個HTTP的Post請求到服務器端,服務器端接收相應的Post請求后(通過$_FILES獲取圖片資源),返回響應信息給給客戶端。(這一種方式和獲取Html方式提交的方法一樣)
把圖片進行base64加密成字符串,進行傳輸
說明:IOS或者安卓端:通過把圖片進行base64編碼得到字符串,傳給接口
接口端:把接收的字符串進行base64解碼,再通過file_put_contents函數,上傳到指定的位置
/**
     * 圖片上傳
     * @param $imginfo - 圖片的資源,數組類型。['圖片類型','圖片大小','圖片進行base64加密后的字符串']
     * @param $companyid - 公司id
     * @return mixed
     */
    public function uploadImage( $imginfo , $companyid ) {
        $image_type = strip_tags($imginfo[0]);  //圖片類型
        $image_size = intval($imginfo[1]);  //圖片大小
        $image_base64_content = strip_tags($imginfo[2]); //圖片進行base64編碼后的字符串
        $upload = new UploaderService();
        $upconfig = $upload->upconfig;
        if(($image_size > $upconfig['maxSize']) || ($image_size == 0)) {
            $array['status'] = 13;
            $array['comment'] = "圖片大小不符合要求!";
            return $array;
        }
        if(!in_array($image_type,$upconfig['exts'])) {
            $array['status'] = 14;
            $array['comment'] = "圖片格式不符合要求!";
            return $array;
        }
        // 設置附件上傳子目錄
        $savePath = 'bus/group/' . $companyid . '/';
        $upload->upconfig['savePath'] = $savePath;
        //圖片保存的名稱
        $new_imgname = uniqid().mt_rand(100,999).'.'.$image_type;
        //base64解碼后的圖片字符串
        $string_image_content = base64_decode($image_base64_content);
        // 保存上傳的文件
        $array = $upload->upload($string_image_content,$new_imgname);
        return $array;
    }// 上傳配置信息
    public $upconfig = array(
        'maxSize'    =>    3145728,         //3145728B(字節(jié)) = 3M
        'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),
//        'rootPath'   =>    './Public/Uploads/info/',
        'rootPath'   =>    'https://www.eyuebus.com/Public/Uploads/info/',
    );
    /**
     * @param $string_image_content - 所要上傳圖片的字符串資源
     * @param $new_imgname - 圖片的名稱,如:57c14e197e2d1744.jpg
     * @return mixed
     */
    public function upload($string_image_content,$new_imgname) {
        $res['result'] = 1;
        $res['imgurl'] = '';
        $res['comment'] = '';
        do {
            $ret = true;
            $fullPath = $this->upconfig['rootPath'] . $this->upconfig['savePath'];
            if(!file_exists($fullPath)){
                $ret = mkdir($fullPath, 0777, true);
            }
            if(!$ret) {
                // 上傳錯誤提示錯誤信息
                $res['result'] = 12;
                $res['comment'] = "創(chuàng)建保存圖片的路徑失敗!";
                return $res;
                break;
            }
            //開始上傳
            if (file_put_contents($fullPath.$new_imgname, $string_image_content)){
                // 上傳成功 獲取上傳文件信息
                $res['result'] = 0;
                $res['comment'] = "上傳成功!";
                $res['imgname'] = $new_imgname;
            }else {
                // 上傳錯誤提示錯誤信息
                $res['result'] = 11;
                $res['comment'] = "上傳失敗!";
            }
        } while(0);
        return $res;
    }感謝各位的閱讀!關于php接口傳輸圖片的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
                文章名稱:php接口傳輸圖片的方法
                
                鏈接URL:http://chinadenli.net/article38/goijpp.html
            
成都網站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網站制作、外貿建站、網站內鏈、動態(tài)網站、服務器托管、
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
