現在在給ios給接口,遇到了一些圖片上傳的問題,現在可以接收到ios傳來的base64編碼后的數據。我是否需要解碼?解碼又需要怎么處理才能把圖片上傳到服務器,并從服務器獲取URL來存入到數據庫呢?求大神指導。本人是在yii2框架下寫的接口
2 回答

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
首先,ios是能夠傳遞文件類型的數據的,你可以直接使用$_FILES來獲取的,多張圖片也一樣,溝通下ios是否換種方式。其次,如果在你們這個場景中只考慮base64的圖片,你接受到了參數使用base64_decode解碼不是解碼整個字符串,是解碼不帶前面格式的串。不過看你貼出來的圖,應該是ios那邊做了處理,只傳遞你base64的部分。那么你解碼之后的得到的東西,使用file_puts_content寫入到一個文件,命名為xxx.jpg(具體后綴名,你可以和ios約定好),保存到臨時地址,再移動到你的圖片真正的保存地址。

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
我在前端做canvas圖片合成的時候用過base64
yii2處理
1.讀取base64編碼后的數據 => $data
2.$data = base64_decode($data);//data為二進制數據了
3.假設web目錄下有upload文件夾,文件名為md5(microtime(true)).'.jpg' => $filename
4.file_put_contents(Yii::$app->basePath.'/web/upload/'.$filename,$data);
5.url = Yii::$app->urlManager->createAbsoluteUrl(['/']).'upload/'.$filename
- 2 回答
- 0 關注
- 1838 瀏覽
添加回答
舉報
0/150
提交
取消