图片未在vue-codeigniter中上传

时间:2019-04-28 10:18:57

标签: codeigniter vue.js

我构建了一个使用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');

感谢您的回复

1 个答案:

答案 0 :(得分:0)

我认为如果您成功获得发送但没有文件,则可能是您的发送类型有误
对于服务器,Base64是String,而不是文件(字节流);对于axios,默认发送类型是Application / json,并且它仅不能发送Byte Stream,因此您应该检查服务器可以获取String并转换为文件
但是,如果服务器需要文件,则应使用formData
我建议您使用FormData发送文件

如果您想使用axios发送formData,这是为您提供的示例。

let formData = new FormData();
formData.append(photo,this.photo);
this.$axios({
  url: '/member',
  method: 'post',
  data: formData
});