我构建了一个使用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');
感谢您的回复
答案 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
});