Just nu i M3-nätverket
Gå till innehåll

Ladda upp bild


Schtaan

Rekommendera Poster

Någon som har någon bra PHP kod eller tips om var jag hittar ett script som används för att användaren ska ladda ner en bild till servern/mysql databasen genom en vanlig filväljare. Ni har sett sånt förr....men hur gör man en sån!

 

[inlägget ändrat 2005-03-26 01:35:55 av TonyR]

Länk till kommentar
Dela på andra webbplatser

Någon som har någon bra PHP kod eller tips om var jag hittar ett script som används för att användaren ska ladda ner en bild till servern/mysql databasen genom en vanlig filväljare. Ni har sett sånt förr....men hur gör man en sån!

 

Rent HTML-mässigt så använder du ju dig av HTML-tagen <input type="file"> sedan rekommenderar jag dig lite läsning på http://www.php.net/features.file-upload för mer info om hur du fångar filen och vilka fler fält du behöver för att genomföra uppladdningen.

 

Sedan rekommenderas det väl generellt inte att lagra bilder i en SQL-databas utan det är nog nästan alltid bättre att lagra dem som filer och sedan lagra filnamn eller någon annan referens till bildfilen i databasen.

 

 

.dune.

----------------------------------------------

- "I find this a nice feature but it is not according to the documentation.

Or is it a BUG?"

- "Let´s call it an accidental feature. :-)"

 

Länk till kommentar
Dela på andra webbplatser

>Sedan rekommenderas det väl generellt inte att lagra bilder i en SQL-databas utan

>det är nog nästan alltid bättre att lagra dem som filer och sedan lagra filnamn eller

>någon annan referens till bildfilen i databasen.

 

Här hör jag titt sm tätt lite olika påståenden och själv så är jag kluven. Vad har du för argument för att inte lagra bilddata i en SQL-databas?

 

Länk till kommentar
Dela på andra webbplatser

Här hör jag titt sm tätt lite olika påståenden och själv så är jag kluven. Vad har du för argument för att inte lagra bilddata i en SQL-databas?

Det jag hört, är att man när man plockar ut datan från SQL-databasen, först måste skriva ner bloben till en temporär fil som sedan skickas till användaren. Finns filen redan färdig på disk så är det ju "bara" att skicka den...

 

Prestandamässigt blir det mao en försämring. Annars vet jag inte. Det är ju också tänkbart att den försämringen är försumbar. Men har man en högtraffikerad sida så kan jag tänka mig att det ödslar rätt mycket onödig databaskraft.

 

 

.dune.

----------------------------------------------

- "I find this a nice feature but it is not according to the documentation.

Or is it a BUG?"

- "Let´s call it an accidental feature. :-)"

 

Länk till kommentar
Dela på andra webbplatser

Varför skulle man skriva ner den till en temporär fil? rimligtvis så borde man ju bara kunna eka ett mime-huvud t.ex:

 

Content-type: image/png

 

och därefter eka datat direkt från databaskopplingen så istället för att spara ner blobben i en variabel så kör man en echo på hämtningen.

 

Och eftersom SQL-databaser cachar frågor och svar så bore ju frekvent efterfrågade objekt (blobbar) bli cachade i ram-minnet vilket i sin tur innebär att ingen diskaktivitet behövs överhuvudtaget för att visa sådana filer.

 

Länk till kommentar
Dela på andra webbplatser

Främsta argumentet mot det är att det innebär enormt mycket mer last för servern att varje gång en bild ska hämtas, ropa på ett php-script som ska leta fram bilden, hämta den från databas-servern (som inte nödvändigtvis ligger på samma dator) och skicka den till den som bad om bilden. Alternativet är att webbservern skickar det som ligger på disk i en operation, utan att behöva blanda in varesig php eller någon databasmotor, något som webbservern är väldigt jättebäst på att göra.

Webbservern är dessutom jättebra på att avgöra om bilden behöver skickas alls eller om det är samma bild som användaren redan har i sin cache, något du säkert inte vill göra själv.

 

Finns det ingen bra anledning till att ha bilden bakom en SQL-förfrågan har du allt att vinna på att göra en tabell där du lagrar information om bilden och därefter döper bildfilen till det ID som posten fick i tabellen. Då kan du enkelt behålla funktionalitet för att spara beskrivningar, info om vem som laddade upp bilden osv men slippa extrajobbet när någon ber om bilden.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...