このコミットが含まれているのは:
守矢諏訪子 2021-11-01 21:26:37 +09:00
コミット 2fa49a6038
1個のファイルの変更23行の追加8行の削除

ファイルの表示

@ -523,27 +523,42 @@ class MeetingsController extends Controller {
if (isset($r->memo)) $update['memo'] = $r->memo;
try {
// リクエストでPDFがある場合
if (isset($r->pdf)) {
$filename = uniqid() . '.pdf';
$pdf = base64_decode(substr($r->pdf, strpos($r->pdf, ',') + 1));
// DBにミーティングがある場合
if ($chk = Meeting::select('pdf')->where('id', (int)$meeting_id)->first()) {
$opdf = str_replace('/storage/', '', $chk->pdf);
if (strcmp(Storage::disk('public')->get($opdf), $pdf) !== 0) {
if (Storage::disk('public')->exists($opdf)) {
Storage::disk('public')->delete($opdf);
}
$update['pdf'] = '/storage/'.$filename;
Storage::disk('public')->put($filename, $pdf);
// base64の場合(ファイルパスだったら、スキップ)
if (preg_match('\/storage\/(.*).pdf', $r->pdf)) {
// もう存在しているPDFのファイル名からパスを外します。
$opdf = str_replace('/storage/', '', $chk->pdf);
// PDFのbase64をGETします。
$pdf = base64_decode(substr($r->pdf, strpos($r->pdf, ',') + 1));
// 既にPDFが存在する場合(なければ、スキップ)
if (Storage::disk('public')->exists($opdf)) {
// 既に存在しているPDFとアップロードしているPDFを比べてみます。異なる場合、存在しているPDFを削除します。
if (strcmp(Storage::disk('public')->get($opdf), $pdf) !== 0) {
Storage::disk('public')->delete($opdf);
}
// アップロードします。
$update['pdf'] = '/storage/'.$filename;
Storage::disk('public')->put($filename, $pdf);
}
}
}
// なければ、そのままストレージに保存します。
else {
$update['pdf'] = '/storage/'.$filename;
Storage::disk('public')->put($filename, $pdf);
}
}
// データベースに保存します。
Meeting::where('id', (int)$meeting_id)->update($update);
} catch (\Throwable $e) {
Log::critical($e->getMessage());