2016-08-30 9 views
0

Итак, в моем jQuery я использую API FormData для отправки некоторых данных контроллеру Laravel. Блобо сам берутся из Кроппера плагина, сам код выглядит folows: журнальные гравюрыBlob сохраняется как поврежденное изображение

image_cropper.cropper('getCroppedCanvas').toBlob(function (blob) { 
      var formData = new FormData(); 

      formData.append('image_url', blob); 
      console.log(formData.get('image_url')); 
      $.ajax({ 
       url: "{{action('Admin\[email protected]')}}", 
       data: formData, 
       processData: false, 
       contentType: false, 
       type: 'POST', 
       success: function(data){ 
       $('#carCreateEditModal').modal('close'); 
       } 
      }); 
     }); 

консольных ЭТОГО объект:

lastModified 
: 
1472579954758 
lastModifiedDate 
: 
Tue Aug 30 2016 20:59:14 GMT+0300 (FLE Daylight Time) 
name 
: 
"blob" 
size 
: 
525372 
type 
: 
"image/png" 
webkitRelativePath 
: 
"" 
__proto__ 
: 
File 

Когда я проверяю, если FormData есть файл в моем контроллер говорится, что файл существует, а затем я просто поместить его в папку:

if($this->request->hasFile('image_url')!=''){ 
      $image = $this->request->file('image_url'); 
      file_put_contents(storage_path().'/'.$time.'.'.$image->extension(), $image); 
     } 

Сохраненный файл расширения и детские 1 KB большой, и не может быть открыт любым файловыми землепроходцев. Изменение внутренних настроек вручную не помогает.

Является ли проблема где-то в моем коде или это что-то о плагине?

ответ

0

Вместо file_put_contents вы можете использовать \Symfony\Component\HttpFoundation\File\UploadedFile::move. Смотрите ниже код:

$image->move(storage_path(), $time.'.'.$image->extension()); 
+0

Я получил сообщение об ошибке 500: Файл «C: \ laragon \ tmp \ phpD0EC.tmp "не существует – Coffee

0

Ну я не знаю, почему, но он работал, чтобы сделать следующим образом в контроллере:

$file = file_get_contents($image); 
file_put_contents($path, $file);