sql >> Database >  >> RDS >> Mysql

een afbeelding weergeven die is opgeslagen in een mysql-blob

Nou ... het antwoord op waarom het zal doen wat je hebt beschreven, is vanwege je gebruik van de header () -functie. In PHP kunt u niets afdrukken voorafgaand aan een header-aanroep, omdat dit de webserver opdracht geeft om een ​​contentheader voor te bereiden. Meestal vervangen die alle inhoud volledig.

Ten tweede wil ik vermelden dat het opslaan van afbeeldingen in een database om twee redenen meestal een slecht idee is.

  1. Het heeft een aanzienlijke invloed op de prestaties en weergave.
  2. Je moet code schrijven om de blob-gegevens weer te geven in plaats van alleen de afbeelding zelf weer te geven.

De voorkeursmethode voor databasegestuurde afbeeldingspresentatie zou zijn dat u de afbeeldingen in een map en hun bestandsnamen in de database bewaart. Als u nu de afbeeldingen wilt weergeven, hoeft u alleen maar in de database te zoeken welke bestandsnamen u wilt weergeven en vervolgens de bestandsnaam in een HTML-attribuut op te nemen.

De uitvoering is ook veel sneller.

Ik wil er ook op wijzen dat als u wilt dat een script uw ​​weergave daadwerkelijk doet, u wilt dat dat script uw ​​koptekst definieert en vervolgens de afbeeldingsblob echo of afdrukt nadat u de koptekst hebt gedefinieerd.

Houd er rekening mee dat wanneer u uw html-tag maakt... die in het src-attribuut, u het dan zoiets als dit zou maken;

<img src="image.php?id=<some_number>">

Nu zal je image.php-bestand de afbeeldingsgegevens in de tag uitspugen.



  1. Tekst invoegen met enkele aanhalingstekens in PostgreSQL

  2. Databasecontrolepunten in SQL Server

  3. Hoe getallen in SQL af te ronden

  4. Autonome transactie in PostgreSQL 9.1