上传文件无法通过 axios 和 laravel工作



我尝试了以前的所有方法,但都没有帮助。我尝试通过axios上传文件:

const [file, setFile] = useState(null)
setFile(event.target.files[0]);     
const uploadFile = () => {
const formData = new FormData(); 
formData.append('myFile', file); 
api.createFile(formData).then(res => {
console.log(res.data);
})      
}
const axios = window.axios
const BASE_API_URL = 'http://localhost:8000',
const config = { headers: { 'content-type': 'multipart/form-data'}}      
export default {
createFile: formData =>  
axios.post(`${BASE_API_URL}/tickets/createFile`, formData, config)
}

我已经通过日志检查了"file"变量,它已经存在。但当我在laravel中得到这个时:

Route::post('/tickets/createFile', function (Request $request){
return response()->json([
'file' => $request->file('myFile')
]);
});

最后:我得到了空响应,这意味着我不能存储它,因为我得到了null值

您期望该文件为JSON响应,但当您使用$request->file('myFile')访问该文件时,它会返回IlluminateHttpUploadedFile的实例,而当您返回JSON时,它将返回一个空对象,因为IlluminateHttpUploadedFile不会像模型那样转换为json,因为它上没有toJson()方法。

如果您转储并死亡$request->文件('myFile'(

Route::post('/tickets/createFile', function (Request $request){
dd($request->file('myFile'));
});

您必须能够看到您上传的文件Object。因此,您可以使用Storage::put()方法继续存储文件

最新更新