Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Prześlij obraz do bazy danych MYSQL i wyświetl go za pomocą PHP z Swift

Pobieranie obrazu od użytkownika

Zobacz http://php.net/manual/en/reserved.variables. pliki.php i http://php.net/manual/en/features.file- upload.php i przyjaciół, aby uzyskać informacje o tym, jak używać $_FILES aby otrzymać przesłane.

Gdy już masz obraz w zmiennej, powiedz $jpg , nie używaj żadnych funkcji kodowania/dekodowania tekstu; tylko zniszczy rzeczy. Poniższe różne podejścia pokażą, co zrobić, aby uniknąć potknięcia się o kody 8-bitowe.

Istnieją trzy sposoby prezentacji obrazu, każdy z nich jest nieco skomplikowany

Przechowywanie obrazu w bazie danych; pokazywanie obrazu w tekście

Użyłem tego podejścia do miniatur, ale nie polecam w przypadku dużych obrazów.

Przechowuj go w MEDIUMBLOB w tabeli użyj bin2hex() w PHP, aby zamienić obraz w ciąg. Następnie użyj INSERT ... VALUES (UNHEX('...')) aby przełączyć się z powrotem na binarny po stronie serwera MySQL.

Po ponownym załadowaniu, niech PHP odwołujący się powie coś w stylu

$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";

Przechowywanie obrazu w bazie danych; Skrypt PHP do generowania obrazu

Używam tego, gdy chcę użyć funkcji PHP "image*" do zmodyfikowania obrazu przed jego wyświetleniem. Ponieważ jest to bardziej zaangażowane, niż prawdopodobnie potrzebujesz, przeanalizuję tylko, co trzeba zrobić.

HTML strony wywołałby inny skrypt, z dowolnymi argumentami, których potrzebujesz:

<img src=modify.php?this=stuff&that=stuff>

Następnie w modify.php , zacznij od

header('Content-type: image/jpeg');

I zakończ na tym (zakładając, że budujesz JPEG):

imagejpeg($im);

Przechowywanie obrazu w pliku

Jest to preferowany sposób, w jaki większość dużych witryn internetowych robi to przez większość czasu.

Jeśli Twój plik pochodzi z przesłanego pliku, coś takiego przenosi go na lepszą ścieżkę bez konieczności dotykania pliku jpg.

$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);

Więcej informacji i przykładów:http://php.net/manual/ pl/function.move-uploaded-file.php

W kodzie HTML po prostu wygeneruj coś takiego:

<img src=path/to/file>

Sprawdź, gdzie na ścieżce serwera możesz umieścić obrazy i upewnij się, że uprawnienia są odpowiednie.

Uwaga:baza danych nie jest zaangażowana w przechowywanie obrazu, zamiast tego ma kolumnę do przechowywania adresu URL "path/to/file" :

image VARCHAR(255) NOT NULL

Do dalszej dyskusji

  • Którą z 3 technik chciałbyś zagłębić?
  • Zobaczmy, jaki kod HTML generujesz.
  • Zobaczmy SHOW CREATE TABLE .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować pole, aby dodać wartość do istniejącej wartości?

  2. Jakie jest najlepsze pole do przechowywania urodzin?

  3. Wstawianie zmiennych MySQL do map Google za pomocą PHP

  4. Co powoduje błąd PDO Nie można wykonać zapytań, gdy inne niebuforowane zapytania są aktywne?

  5. SQL:Wybierz ostatni rekord dla każdego dnia podanej daty i godziny