相关疑难解决方法(0)

PHP - 获取base64 img字符串解码并保存为jpg(产生空图像)

嗨,我实际上是通过ajax将一个base64图像字符串发送到一个php脚本,它只解码字符串并将内容保存为.jpg文件.

但结果是空图像.

这怎么可能?

php脚本:

$uploadedPhotos = array('photo_1','photo_2','photo_3','photo_4');
            foreach ($uploadedPhotos as $file) {
                if($this->input->post('photo_1')){
                     $photoTemp = base64_decode($this->input->post('photo_1'));


                    /*Set name of the photo for show in the form*/
                    $this->session->set_userdata('upload_'.$file,'ant');
                    /*set time of the upload*/
                    if(!$this->session->userdata('uploading_on_datetime')){
                     $this->session->set_userdata('uploading_on_datetime',time());
                    }
                     $datetime_upload = $this->session->userdata('uploading_on_datetime',true);
                    /*create temp dir with time and user id*/
                    $new_dir = 'temp/user_'.$this->session->userdata('user_id',true).'_on_'.$datetime_upload.'/';
                    @mkdir($new_dir);
                    /*move uploaded file with new name*/
                    @file_put_contents( $new_dir.$file.'.jpg',$photoTemp);


            }
Run Code Online (Sandbox Code Playgroud)

对于ajax来说没关系因为,echo $ photoTemp返回字符串.

我试过var_dump(@file_put_contents( $new_dir.$file.'.jpg',$photoTemp));,它返回,bool(true)因为图像被保存但图像中没有内容:(空图像

对于空图像,我的意思是,文件是创建和命名的,它与我传递给php的内容大小相同,但是当我尝试打开该图像进行预览时,文件无法打开,因为文件损坏或损坏类型格式

无论如何这是将照片作为base64并将其发送到php的JS:

<script type="text/javascript">

var _min_width = 470;
var _min_height = 330; …
Run Code Online (Sandbox Code Playgroud)

php base64 codeigniter image save

15
推荐指数
3
解决办法
11万
查看次数

标签 统计

base64 ×1

codeigniter ×1

image ×1

php ×1

save ×1