画像アップロード処理の改善と不要なコメントの削除
All checks were successful
Deploy main / deploy (push) Successful in 22s

This commit is contained in:
kin.rinzen 2025-10-22 09:40:46 +09:00
parent 5c627a80e0
commit e63613f337

View File

@ -105,7 +105,7 @@ class InvSettingController extends Controller
// ▼ 既存レコードを取得1レコード運用 // ▼ 既存レコードを取得1レコード運用
$row = InvSetting::first(); $row = InvSetting::first();
// ▼ 画像パスを設定AJAX アップロード済みファイルのパスを優先) // ▼ 画像パスを設定
$imagePath = $request->company_image_path; $imagePath = $request->company_image_path;
// ▼ フォームで新たにファイルを送信した場合のみ再保存(保険的処理) // ▼ フォームで新たにファイルを送信した場合のみ再保存(保険的処理)
@ -148,6 +148,39 @@ class InvSettingController extends Controller
/** /**
* 社判画像アップロードAJAX用 * 社判画像アップロードAJAX用
*/ */
// public function upload(Request $request)
// {
// // ファイルがアップロードされているか確認
// if ($request->hasFile('company_image_file')) {
// // 拡張子チェック & バリデーション
// $request->validate([
// 'company_image_file' => 'required|image|mimes:png,jpg,jpeg|max:2048',
// ], [
// 'company_image_file.image' => '画像ファイルを選択してください。',
// 'company_image_file.mimes' => 'アップロード可能な形式は png, jpg, jpeg のみです。',
// 'company_image_file.max' => 'ファイルサイズは2MB以下にしてください。',
// ]);
// // ファイル保存public/storage/inv に格納)
// $path = $request->file('company_image_file')->store('inv', 'public');
// // ファイル名を抽出
// $fileName = basename($path);
// // JSONで返却JSが受け取る
// return response()->json([
// 'file_name' => $fileName,
// 'path' => $path,
// ]);
// }
// // ファイル未選択時
// return response()->json([
// 'error' => 'ファイルが選択されていません。'
// ], 400);
// }
public function upload(Request $request) public function upload(Request $request)
{ {
// ファイルがアップロードされているか確認 // ファイルがアップロードされているか確認
@ -162,15 +195,22 @@ class InvSettingController extends Controller
'company_image_file.max' => 'ファイルサイズは2MB以下にしてください。', 'company_image_file.max' => 'ファイルサイズは2MB以下にしてください。',
]); ]);
// ファイル保存public/storage/inv に格納) // ファイルオブジェクト取得
$path = $request->file('company_image_file')->store('inv', 'public'); $file = $request->file('company_image_file');
// ファイル名を抽出 // 元のファイル名company_logo.png
$fileName = basename($path); $originalName = $file->getClientOriginalName();
// JSONで返却JSが受け取る // 保存用に、ファイル名の重複を避けるためにユニーク名を生成(推奨)
$fileName = $originalName;
// public/storage/inv に保存
$path = $file->storeAs('inv', $fileName, 'public');
// JSONで返却JS側で表示用ファイル名を使う
return response()->json([ return response()->json([
'file_name' => $fileName, 'file_name' => $originalName, // ユーザーが見えるファイル名
'stored_as' => $fileName, // 実際に保存されたファイル名
'path' => $path, 'path' => $path,
]); ]);
} }
@ -182,4 +222,5 @@ class InvSettingController extends Controller
} }
} }