我尝试了以前的所有方法,但都没有帮助。我尝试通过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()
方法继续存储文件