0

我使用vue和codeigniter rest服务器构建了一个应用程序,我尝试通过邮递员上传文件,它工作正常,但是当我从前端尝试时,文件没有上传,文件夹权限已被允许,这是我的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');

感谢您的答复

4

1 回答 1

0

我想如果你成功发送但没有文件,可能你的发送类型有错误

对于服务器 Base64 是一个字符串,而不是文件(字节流),对于 axios,默认发送类型是应用程序/json,它只能不发送一个字节流,所以你应该检查你的服务器可以获得一个字符串并转换为文件
但是如果你的服务器想要一个文件,你应该使用 formData
我建议你使用 FormData 来发送文件

如果你想使用 axios 这是一个例子发送表单数据。

let formData = new FormData();
formData.append(photo,this.photo);
this.$axios({
  url: '/member',
  method: 'post',
  data: formData
});
于 2019-04-28T12:20:53.197 回答