前端部分: 前端部分使用的是vue ant
<a-upload
name="thumbUrl"
:multiple="true"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:headers="headers"
@change="handleChange"
>
<a-button> <a-icon type="upload" /> Click to Upload </a-button>
</a-upload>
// 方法部分
handleChange(info) {
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList);
const { fileList } = info;
const formData = new FormData();
fileList.forEach(file => {
// thumbUrl 这个要和后台对应上
formData.append('thumbUrl', file.originFileObj);//后面再加上token
});
this.requ(formData)
}
if (info.file.status === 'done') {
this.$message.success(`${info.file.name} file uploaded successfully`);
} else if (info.file.status === 'error') {
this.$message.error(`${info.file.name} file upload failed.`);
}
},
requ(formData) {
let configs = {
headers: {
"Content-Type": "multipart/form-data"
}
}
axios.post('/home/upfile',formData, configs).then(res => {
console.log(res)
}).catch(res => {
console.log(res)
});
}
后台部分
# 导入input类
Use Illuminate\Support\Facades\Input;
public function upFiles(Request $request) {
$requests = $request -> all();
$postType = Input::method();
if ($postType == 'POST') {
// 判断文件是否正常
if ($request -> hasFile('thumbUrl') && $request -> file('thumbUrl') -> isValid()) {
$path = md5(time() . rand(100000, 999999)) . '.' . $request -> file('thumbUrl') -> getClientOriginalExtension();
$request -> file('thumbUrl') -> move('./uploads', $path);
$res = Member::where('id', '=', '1') -> update(['thumbUrl' => $path]);
if ($res) {
return '操作成功';
}
}
}
}