webForumDet fria alternativet

Bilderna blir korrupta

PHP

2 svar · 345 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#1

Hej!

Sitter och pular med en bilduppladning.
Bilden laddas upp, men blir korrupt. Jag försöker dels ladda upp originalbilden och dels skapa en tumnagel av den stora bilden.

Jag använder imagecopyresampled() för att justera bildens storlek och imagecreatefromstring() för att få ner bilden.

Noterbart kan vara att jag av experimentsskäl postar bilden i ett BLOBfält i en mysqldatabas.

Tips?

///Patrik

image.jpg
Medlem sedan dec. 19995 874 inlägg
#2

Jag har hittat felet. När jag skriver ut informationen så sker det först via stripslashes(). Om jag inte använder stripslashes() så fungerar det utmärkt, men jag kör ju addslashes() när jag lägger in binärsträngen i databasen. Är detta en bugg i php med BLOB-fält, eller är det något jag inte har tänkt på?

Medlem sedan aug. 20002 975 inlägg
#3

Dina backslash försvinner när du lägger in det i databasen. Jämför med:

$sql = "INSERT INTO tabell (kolumn) VALUES ('text \" text')";

Anledningen till att du inte behöver köra addslashes normalt på det du lägger in i databasen, är att för det mesta är PHP inställt med magic_quotes_gpc=On, och då läggs escape-tecken automatiskt på det som kommer från formuläret. Men detta gäller inte bilder som laddas upp.

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)