За последние 24 часа нас посетили 18134 программиста и 873 робота. Сейчас ищут 509 программистов ...

POST методом передача фото в БД без вызова формы html

Тема в разделе "PHP и базы данных", создана пользователем SergeyOK, 5 фев 2024.

  1. SergeyOK

    SergeyOK Гость

    С нами с:
    5 фев 2024
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане.
    Я новичок в php, поэтому сразу не судите строго.
    Есть несколько вопросов:

    1. Возможно ли графические файлы (png, jpg и т.д) прямо отправлять в MySQL в кодировке UTF-8?Отправляя сейчас так файлы, у меня записывается «кракозябра».
    2. В каком типе в MySQL можно хранить данные закодированные в UTF-8?При учёте того, что сами файлы будут размером до 50Мб.
    3. Нужно ли при отправке данных закодированных UTF-8 указывать в рhp коде какой-то дополнительный скрипт, так как отправляя сейчас данные укладывая их в longtext у меня получается кракозябра.
    4. Как у вас возможно есть рекомендации по хранению файлов в кодировке UTF-8 в MySQL?
     

    Вложения:

    • 1sen777.png
      1sen777.png
      Размер файла:
      38,3 КБ
      Просмотров:
      2
    #1 SergeyOK, 5 фев 2024
    Последнее редактирование модератором: 8 фев 2024
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    196
    Симпатии:
    29
    Адрес:
    Бавария, Германия
    Добрый день, Сергей!
    Я никогда не сохранял графические файлы в таблицах MySQL и Вам не рекомендую этого делать.
    Обычно, после закачки файлов на сервер они сахраняются в папках на сервере, а в MySQL сохраняются названия папок и файлов.
    Возможно ли прямо отправлять в MySQL. Да возможно. Если очень хочется, то поле таблицы, в этом случае (файл до 50Мб) нужно определить как LONGBLOB.
    Удачи!
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.811
    Симпатии:
    732
    Адрес:
    Татарстан
    темка чето с содержимым не вяжется....
    при чем тут форма? html
    да - изображения можно хранить в БД - но крайне не нужно
     
  4. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    54
    Симпатии:
    6
    1. Форматы png, gif и т.п. - бинарные. Поэтому у тебя "крякозября", utf8 png/gif "не понимают".
    2. С учетом того, что файлы бинарные, тебе нужно использовать BLOB (небольшие файлы) или LONGBLOB (большие файлы)
    3. Настроить кодировку utf8mb4 для таблицы, и ячейки таблиц, а также при подключении и работой с бд set_charset("utf8mb4");
    utf8mb4 поддерживает все символы включая эмодзи
    4. Не хранить в mysql таблицах вообще ( страдает и возможность работать с этими картинками и производительность). Для этого есть возможность сохранять файлы png (желательно вне директории web - сайта)
    Можно сохранять путь/уник. название, размер, тип и идентификатор файла при загрузке и получать этот файл например с помощью php.