- フォームの作成
まず、画像をアップロードするためのフォームを作成します。HTMLの
<form>
要素を使用し、enctype="multipart/form-data"
属性を追加して、フォームがファイルを送信できるようにします。
<form method="POST" action="/upload" enctype="multipart/form-data">
@csrf
<input type="file" name="image">
<button type="submit">アップロード</button>
</form>
- コントローラの作成
アップロードされた画像を処理するためのコントローラを作成します。
php artisan make:controller UploadController
コマンドを使用して、UploadController
を生成します。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UploadController extends Controller
{
public function upload(Request $request)
{
if ($request->hasFile('image')) {
$image = $request->file('image');
$imageName = time() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('images'), $imageName);
// 保存されたファイル名などの処理を行う
return '画像がアップロードされました。';
}
return '画像が選択されていません。';
}
}
- ルートの設定
routes/web.php
ファイルで、アップロードフォームのルートを設定します。
use App\Http\Controllers\UploadController;
Route::post('/upload', [UploadController::class, 'upload']);
- 画像の保存先
上記の例では、アップロードされた画像は
public/images
ディレクトリに保存されます。必要に応じて保存先を変更してください。
これで、Laravelでパブリックフォルダに画像をアップロードすることができます。フォームとコントローラの設定を適切に行い、アップロードされた画像を適切な場所に保存することができます。