getClientOriginalExtension(); if ($file->move($destinationPath, $fileName)) { $filePath = $destinationPath.$fileName; if (file_exists($filePath)){ chmod($filePath, 0755); // ファイル権限設定 } return $fileName; } return false; } /** * 画像パスを取得 * * @param string $filname ファイル名 * @return string 画像パス */ public static function getImagePath($filname = '') { $path = self::image_path; if ($filname) $path .= $filname; return $path; } /** * 画像URLを取得 * * @param string $filname ファイル名 * @return string 画像URL */ public static function getImageUrl($filname = '') { return url(self::getImagePath($filname)); } /** * パスワードのハッシュ化 * Laravel 12変更点:Hashファサードを使用してハッシュ化 * Laravel 5.7: 独自のソルト処理を実装していた * * @param string $pw 平文パスワード * @param string $seq ユーザーシーケンス(ソルト用) * @return string ハッシュ化されたパスワード */ public static function getHashPassword($pw, $seq) { // 旧システムと同じソルト形式を維持 $salt = $seq.'SOMSALT'; // Laravel 12: Argon2ハッシュアルゴリズムを使用 return Hash::make($pw, [ 'memory' => 1024, 'time' => 25, 'threads' => 2, 'salt' => $salt ]); } /** * CSVファイルを配列に変換 * Laravel 5.7から継承したメソッド(データインポート用) * * @param string $filename CSVファイルパス * @param string $delimiter 区切り文字(デフォルト:カンマ) * @return array|false 変換された配列、またはfalse(失敗時) */ public static function csvToArray($filename = '', $delimiter = ',') { // ファイル存在確認 if (!file_exists($filename) || !is_readable($filename)) return false; $header = null; $data = array(); // CSVファイルを読み込み if (($handle = fopen($filename, 'r')) !== false) { while (($row = fgetcsv($handle, 1000, $delimiter)) !== false) { if (!$header) $header = $row; // 最初の行はヘッダーとして扱う else $data[] = $row; // データ行として配列に追加 } fclose($handle); } return $data; } }