This commit is contained in:
parent
5c627a80e0
commit
e63613f337
@ -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
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user