VueからLaravel 8パート2に画像を保存する
8949 ワード
最初の部分では、この小さなチュートリアルのMVC側を設定しました.まず、作成時にデータポイントを設定する必要があります.Vueしたがって、そのファイルに頭を追加し、次のコードを追加します.
そこで、データとファイルを保存するバックエンドにデータを送る機能を作成する必要があります.
バックエンドでそのルートを設定して、呼び出しを期待するために、ルート/APIにヘッドオーバーします.PHPを追加し、次の行を追加します
話をしましょう私たちは$イメージ と呼ばれる変数を作成します私たちは、ストレージフォルダのイメージと呼ばれるフォルダに$ imageを置きます. 私たちは、今日の日付をイメージ名と拡張子を追加します. 私たちはimagehedpath としてデータベースにイメージ名を保存します
他のステートメントは単に保持を保存します.フロントエンドが使用する文字列は存在しません.
そして、私の人々は、我々がイメージをデータベースに保存して、フロントエンドで使用する方法です.
何か問題や質問があればすべてのステップをカバーすると思います
data() {
return {
form: {
title: "",
article: "",
image: null,
},
};
},
上記は、最初の部分で作成したフォームと一致します.Vueモデルは、フォームを使用するときに満たされます.そこで、データとファイルを保存するバックエンドにデータを送る機能を作成する必要があります.
methods: {
submitForm() {
let data = new FormData();
data.append('title', this.form.title);
data.append('article', this.form.article);
data.append('image', this.form.image);
let config = {
header : {
'Content-Type' : 'image/png'
}
}
axios.post("/api/blog/create", data, config)
.then((response) => {
this.successBool = true
console.log(response);
}).catch(
this.errorBool = true
);
},
},
したがって、開始するにはformdata ()関数を使用した変数を作成し、それぞれのV変数をそのデータ変数に追加します.そして、バックエンドがイメージがリクエストにあることに気づいているようにヘッダーをセットして、最終的に、我々はAxios呼び出しで一緒にすべてを縫い合わせます.バックエンドでそのルートを設定して、呼び出しを期待するために、ルート/APIにヘッドオーバーします.PHPを追加し、次の行を追加します
//Blog posts
Route::group(['prefix' => 'blog'], function () {
Route::post('create', 'BlogController@put');
});
API.PHPのルートファイルは自動的にルートにAPIを追加します、そして、我々のルート::グループは接頭語/ブログを加えます、そして、最後の部分はCreateを加えて、ブログコントローラPUTメソッドにルート全体を示します.だから、そこに頭をして、機能を追加しましょう.//Create a blog post
public function put(Request $request) {
$article = new Blog;
$article->title = $request->input('title');
$article->article = $request->input('article');
//Save image to disk
if($request->hasFile('image')) {
$image = $request->file('image');
Storage::putFileAs('images', $image, Carbon::now()->toDateString().'.'.$image->getClientOriginalExtension());
$article->image_path = Carbon::now()->toDateString().'.'.$image->getClientOriginalExtension();
} else {
$article->image_path = 'holding.jpg';
}
$article->save();
$data = [
'status' => 200,
'data' => 'Blog post created successfully'
];
return response($data);
}
最初の部分は簡単です、我々はブログモデルをつかみ、タイトルと記事を保存します、そして、我々はイメージをチェックします、そして、それはそれを保存します.話をしましょう
他のステートメントは単に保持を保存します.フロントエンドが使用する文字列は存在しません.
そして、私の人々は、我々がイメージをデータベースに保存して、フロントエンドで使用する方法です.
何か問題や質問があればすべてのステップをカバーすると思います
Reference
この問題について(VueからLaravel 8パート2に画像を保存する), 我々は、より多くの情報をここで見つけました https://dev.to/grahammorby/save-an-image-from-vue-to-laravel-8-part-2-2cknテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol