..
このコミットが含まれているのは:
コミット
2fa49a6038
|
@ -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());
|
||||
|
|
新しいイシューから参照