Как сохранить и получить данные из поля Postgres Bytea с Laravel?
Я хочу обновить двоичные данные и загрузить их.
Типы файлов - это JPG, Excel, TXT и т. Д. public function store_db( $file, $file_name, $user_id ) {
$file_path = $file->getRealPath();
$new_attachment = Attachment::create([
'name' => $file_name,
'mime' => $file->getClientMimeType(),
'size' => $file->getClientSize(),
'uploaded_data' => pg_escape_bytea(file_get_contents($file_path)),
'created_by' => $user_id,
'updated_by'=> $user_id,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
return $new_attachment->id;
< /code>
рядом с данными получить и загрузить (JPG, Excel и т. Д.) < /p>
public function get_attachment( $id ) {
$file = $this->attachmentRepository->findWithoutFail($id);
$dbh = DB::connection()->getPdo();
$stmt = $dbh->prepare("SELECT name, mime, trim(trailing from encode(uploaded_data,'escape')) AS encode_data FROM attachments WHERE attachments.id = :atid");
$stmt->bindParam(':atid', $id);
$stmt->execute();
$result = $stmt->fetch($dbh::FETCH_ASSOC);
$name = $result['name'];
$mime = $result['mime'];
$headers = array(
"Content-Type: {$mime}",
);
$fileData = $result['encode_data'];
$ext = substr($name, strrpos($name, '.') + 1);
file_put_contents($ext , pg_unescape_bytea($fileData));
return response()->download($ext, $name, $headers);
Подробнее здесь: https://stackoverflow.com/questions/497 ... inary-data
Laravel с PostgreSQL, хранить и получить бинарные данные ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spatie/Browsershot (кукольник) печатает бинарные данные вместо BASE64 (PDF)
Anonymous » » в форуме Php - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-