python - 云平台不支持写操作,动态生成的文件怎么存储?
PHP中文网
PHP中文网 2017-04-17 13:04:39
0
3
439

如题,比如根据用户信息生成二维码,生成静态文件,再调用。可是云平台不支持写操作,所以图片无法本地保存,也就无法保存,大家有没有解决办法?如果不要求持久化,干脆不生成图片,base64 会报类型错误,TypeError: must be convertible to a buffer, not PilImage,这个要怎么做?
还有如果用云存储,也要生成图片才能上传上去。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
大家讲道理

感覺這不是通用的思路,雲端平台大多都有storage 只需要使用這個功能即可

左手右手慢动作

如果是新浪雲的話,參考SAE上縮圖產生處理imagegif/imagejpeg/imagepng,大同小異。

Peter_Zhu

可以產生一個暫存檔案(系統暫存目錄,不可能把這個目錄也封鎖了,否則不能做檔案上傳了),把圖片二進位內容寫進去。然後再提交這個臨時文件,完成後刪除即可。例如(PHP舉例):

class file {

    private $file = null;

    public function __construct($content=null) {
        $this->file = tempnam(sys_get_temp_dir(),md5(uniqid().mt_rand()));
        if ($content) {
            $this->write($content);
        }
    }

    public function write($content) {
        file_put_contents($this->file,$content);
    }

    public function read($content) {
        return file_get_contents($this->file);
    }

    public function getFilepath() {
        return $this->file;
    }

    public function __destruct() {
        @unlink($this->file);
    }
}
$file = new file();
$file->write(图片二进制);

// cURL上传图片
// CURL_POSTFIELDS : @$file->getFilePath()

python。不曉得

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板