Изображение не загружено в vue-codeigniter - PullRequest
0 голосов
/ 28 апреля 2019

Я создаю приложение, использующее сервер vue и codeigniter rest, пытаюсь загрузить файл почтальоном, и оно работает нормально, но когда я пытаюсь из front-end, файл не загружается, разрешение папки разрешено, это мое vueкод

data() {
   return {
      data: {
         photo: // base64 data
      }
   }
}

о методах

addMember(){
   this.axios.post('member', this.data).then(res => {
      console.log(res)
   }).catch(err => {
      console.log(err)
   })
}

о бэкэнде

$filename = round(microtime(true)).'.png';
$config['file_name']            = $filename;
$config['upload_path']          = './storage/';
$config['allowed_types']        = '*';
$config['max_size']             = 50000;
$config['max_width']            = 50000;
$config['max_height']           = 50000;

$this->load->library('upload', $config);
$this->upload->do_upload('photo');

спасибо за ваш ответ

1 Ответ

0 голосов
/ 28 апреля 2019

Я думаю, что если вы успешно получите отправку, но без файла, возможно, ваш тип отправки имеет ошибку

Для сервера Base64 - это строка, а не файл (поток байтов), для axios тип отправки по умолчанию - Application / json, и он не может только отправлять поток байтов, поэтому следует проверить, что сервер может получить строку и преобразовать в файл.
Но если ваш сервер хочет файл, вы должны использовать formData
И я предлагаю вам использовать FormData для отправки файла

Вот примеры для вас, если вы хотите использовать axios send formData.

let formData = new FormData();
formData.append(photo,this.photo);
this.$axios({
  url: '/member',
  method: 'post',
  data: formData
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...