【发布时间】:2020-01-09 17:45:30
【问题描述】:
我正在为大学使用 Vuejs 和 laravel 做一个项目,当我将信息发送到 api 时我需要支持
我正在使用 axios 发布帖子,但他们给了我一个错误:500(内部服务器错误)。但我看不到错误,我想我的代码都很好。
这是我的提交方法
submitFiles() {
for (let i = 0; i < this.files.length; i++) {
if (this.files[i].id) {
continue;
}
let formData = new FormData();
formData.append("file", this.files[i]);
axios
.post("/files/upload-file", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.then(
function(data) {
this.files[i].id = data["data"]["id"];
this.files.splice(i, 1, this.files[i]);
console.log("success");
}.bind(this)
)
.catch(function(data) {
console.log("error");
});
}
}
}
这是我的路线帖子(已编辑)
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::group(['middleware' => 'auth'], function () {
Route::get('files', 'FileEntriesController@index');
});
Route::get('files/create', 'FileEntriesController@create');
Route::post('files/upload-file', 'FileEntriesController@uploadFile');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('{path}','HomeController@index')->where('path', '([A-z\d-\/_.]+)?');
这是我的控制器
public function uploadFile(Request $request) {
$file = Input::file('file');
$filename = $file->getClientOriginalName();
$path = hash( 'sha256', time());
if(Storage::disk('uploads')->put($path.'/'.$filename, File::get($file))) {
// $input['user_id'] = $user_id;
$input['filename'] = $filename;
$input['mime'] = $file->getClientMimeType();
$input['path'] = $path;
$input['size'] = $file->getClientSize();
$file = FileEntry::create($input);
return response()->json([
'success' => true,
'id' => $file->id
], 200);
}
return response()->json([
'success' => false
], 500);
}
我希望将信息传递到数据库,但它显示错误 405(不允许方法)
已编辑
在部分网络的 isspect 选项中,我可以找到这个:
{消息:“找不到类 'App\Http\Controllers\Input'”,...} 异常:“Symfony\Component\Debug\Exception\FatalThrowableError” 文件:“C:\laragon\www\vue-laravel-app\app\Http\Controllers\FileEntriesController.php” 线路:11 消息:“找不到类 'App\Http\Controllers\Input'”
【问题讨论】:
-
路由文件的其余部分是什么样的。上传路线上方有
Route::get('files/{file}', 'FileEntriesController@show');之类的东西吗?您发布的所有内容看起来都是正确的。 -
我编辑了我的帖子,你可以看到我所有的路线,这些路线在 web.php 文件中
-
this.post_url的值是多少,您可以将 axios 中的 url 设置为 '/files/upload-file' 看看是否有效。 -
确保您使用 Route::post() 为您发送的
post_url创建了一个路由条目 -
/files/upload-file/ 我试试这个,但没用
标签: javascript php laravel vue.js