PHP - получить base64 img декодирование строки и сохранить как JPG (в результате пустое изображение)

привет яя на самом деле отправляю строку изображения base64 через ajax в скрипт 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);


            }

Для ajax это нормально, потому что echo $ photoTemp возвращает строку.

Я старалсяvar_dump(@file_put_contents( $new_dir.$file.'.jpg',$photoTemp)); и он возвращаетсяbool(true) так как изображение сохранено, но в изображении нет содержимого :( пустое изображение

для пустого изображения я имею в виду, файл создан и назван, и он имеет тот же размер содержимого, которое я передаю php, но когда я пытаюсь открыть это изображение для предварительного просмотра, он говорит, что файл может 'не может быть открыт из-за поврежденного или неверного формата файла

в любом случае это JS, который берет фотографию как base64 и отправляет ее на php:



var _min_width = 470;
var _min_height = 330;
var _which;
var _fyle_type;
var  io;
var allowed_types = new Array('image/png','image/jpg','image/jpeg');
if (typeof(FileReader) === 'function'){
$('input[type="file"]').on('change', function(e) {
    var _file_name = $(this).val();
    $('.'+_which+'_holder').text(_file_name);
    var file = e.target.files[0];

    if (!in_array(file.type,allowed_types) || file.length === 0){
        notify("You must select a valid image file!",false,false); 
        return;
    }

    if(file.size > 3145728 /*3MB*/){
        notify("",false,false); 
        return;
    }
    notify_destroy();

    var reader = new FileReader();
    reader.onload = fileOnload;
  reader.readAsDataURL(file);


});

function fileOnload(e) {
    var img = document.createElement('img');
    img.src = e.target.result;

    img.addEventListener('load', function() {
        if(img.width < _min_width || img.height < _min_height ){
        notify("",false,false); 
        return;
        }


        $.ajax({
            type:'post',
            dataType:'script',
            data:{photo_1:e.target.result},
            url:_config_base_url+'/upload/upload_photos',
            progress:function(e){
                console.log(e);
            },
            success:function(d){
                $('body').append('<img src="'+d+'">');
            }
         });


    });

}
}

Ответы на вопрос(6)

Ваш ответ на вопрос