sql >> Databáze >  >> RDS >> Mysql

Nahrajte obrázek do databáze MYSQL a zobrazte jej pomocí PHP s Swift

Získání obrázku od uživatele

Viz http://php.net/manual/en/reserved.variables. files.php a http://php.net/manual/en/features.file- upload.php a přátelům za údaje o tom, jak používat $_FILES přijímat nahrané.

Jakmile budete mít obrázek v proměnné, řekněte $jpg , nepoužívejte žádné funkce kódování/dekódování textu; bude to jen mačkat věci. Různé přístupy níže řeknou, co dělat, aby se zabránilo zakopnutí o 8bitové kódy.

Obrázek lze prezentovat třemi způsoby, každý je poněkud složitý

Uložení obrázku do databáze; zobrazení obrázku v řádku

Tento přístup jsem použil pro miniatury, ale nedoporučuji pro velké obrázky.

Uložte jej do MEDIUMBLOB v tabulce použijte bin2hex() v PHP převést obrázek na řetězec. Poté použijte INSERT ... VALUES (UNHEX('...')) pro přepnutí zpět na binární na straně serveru MySQL.

Po opětovném načtení nechte odkazující PHP říct něco jako

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

Uložení obrázku do databáze; PHP skript pro generování obrázku

Používám to, když chci pomocí funkcí PHP "image*" upravit obrázek před jeho zobrazením. Vzhledem k tomu, že je to více zapojeno, než pravděpodobně potřebujete, jen zběžně přelétnu, co je potřeba udělat.

HTML pro stránku by vyvolalo další skript s libovolnými argumenty, které potřebujete:

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

Poté v modify.php , začněte s

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

A skončete tímto (za předpokladu, že vytváříte JPEG):

imagejpeg($im);

Uložení obrázku do souboru

Toto je preferovaný způsob, kterým to většina velkých webových stránek dělá většinu času.

Pokud váš soubor pochází z nahrání, něco takového jej přesune na lepší cestu, aniž byste se museli dotknout jpg.

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

Další informace a příklady:http://php.net/manual/ cs/function.move-uploaded-file.php

V HTML jednoduše vygenerujte něco takového:

<img src=path/to/file>

Udělejte si průzkum, kam v cestě vašeho serveru můžete umístit obrázky, a ujistěte se, že máte dostatečná oprávnění.

Poznámka:Databáze se nepodílí na uchovávání obrázku, místo toho má sloupec pro uložení adresy URL "path/to/file" :

image VARCHAR(255) NOT NULL

Pro další diskusi

  • Kterou ze 3 technik byste chtěli prozkoumat hlouběji?
  • Podívejme se na kód HTML, který generujete.
  • Podívejme se SHOW CREATE TABLE .


  1. Počítejte neprázdná pole mysql

  2. vyberte TOP N řádků z tabulky

  3. Jak napsat tento SQL příkaz?

  4. RMAN selže s RMAN-06900 RMAN-06901 ORA-04031