sum..
om jag har en fil som jag laddat upp och vill lägga in i databas hur gör jag då?
17 svar · 278 visningar · startad av Danmagnus
om jag har en fil som jag laddat upp och vill lägga in i databas hur gör jag då?
sum..
Filen skall du inte lägga in i databasen. Spara filen på servern istället och lägg in sökvägen (kanske räcker med filnamnet) som ett textfält i databasen.
------------------
CF
det vet jag redan hur man gör kompis.
nackdelen är att man inte kan skydda filer från att nedladdas då.
Det borde man väl kunna styra genom att spara ner filerna i en katalog som inte är åtkomlig "utifrån".
förklara hur. man kan ju inte länka till filer som inte ligger i www-mappar.
Nje, men man kan läsa dem från ASP-skripten, och skicka ut dem till klienten med response.binarywrite.
------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Ungefär så jag menade - då kan man begränsa åtkomsten för "externa" användare till filerna, men ändå komma åt dem från ASP-scriptet.
Kan du ge en mer utförlig beskrivning av vad du vill göra?
[Redigerat av cf den 25 jul 2000]
jo selvfölgelig har jag tänkt på detta oxå men nån som kan exakt kod hur man gör response.contentype och response.binarywrite ..
Här kan du se hur binarywrite fungerar: http://msdn.microsoft.com/library/psdk/iisref/vbob2rxh.htm
MIME-typen skall ju egentligen sättas till samma som för filen som laddas ner. Problemet är att det kan bli krångel om man samtidigt vill att ASP-sidan skall generera någon form av output (HTML). http://support.microsoft.com/support/kb/articles/Q216/5/22.ASP
Skulle du vilja lägga in filen i databasen (usch) finns ett intressant avsnitt i följande artikel: http://msdn.microsoft.com/library/periodic/period99/jw0999.htm
(Load Images from Database to Browser)
Lite mer om BLOB: http://msdn.microsoft.com/library/psdk/iisref/devs7d7m.htm
[Redigerat av cf den 25 jul 2000]
En liten kommentar:
Jag har precis avslutat ett projekt med att spara produkter och bilder på en webbplats. Idealet är faktiskt att man sparar bilderna binärt i databasen, för då kan man ha en relation till bilden. Skall en post raderas, så raderar man bara posten, punkt slut..
Detta är nog bara praktiskt genomförbart med SQL server.
Använder man Access så är det nog en bra idé att spara bilderna som filer i en speciell katalog. Problemet är att uploadkomponenten antagerligen kräver samma access till den katalogen som besökarna har...
Man sparar då lämpligast filnamnet i ett fält. Har man många bilder är det klokast att skapa unika filnamn med tex ett post id. Skall man radera posten och filerna, så får man först kolla bildens namn, sedan använda filesystemobjects och radera bilden.
Jag löste det med den sistnämnda metoden för att det var en Accessdatabas.
/T
------------------
<*~-. Toonster .-~*>
Att spara små bilder i databasen går säkert bra, men om man slänger in zip-filer på 20 Mb och har en stor databas, känns det nog inte riktigt bra.
Vet dock inte vad Danmagnus tänkt sig.
Det är många som skriver men ingen har hitills kommit med någon exakt kod =) ..
För att hämta informationen som är skickad i formuläret kan du nog använda något liknande
bilddata=Request.BinaryRead(Request.TotalBytes)
Då innehåller variabeln bilddata informationen som är medskickad i formuläret.
/T
------------------
<*~-. Toonster .-~*>
nästan rätt. men det måste göras om till binärt först. har du nån kod för att omvandla?
med din kod toonster hämtas Allt till variabeln. alltså hela webformuläret med alla formulärfält , man måste först skära ut enbart det binära ur ett specifikt fält.
Nu börjar ni ju snacka om uploadgrejor, så då får ni ta en titt på http://cgi.webforum.nu/wf/Forum11/HTML/000626.html
Jag har precis avslutat ett projekt med att spara produkter och bilder på en webbplats. Idealet är faktiskt att man sparar bilderna binärt i databasen, för då kan man ha en relation till bilden. Skall en post raderas, så raderar man bara posten, punkt slut..
Detta är nog bara praktiskt genomförbart med SQL server.
Själva relationen försvinner ju inte för att man sparar filen utanför databasen, men visst riskerar man att det blir skräpfiler kvar.
Med SQL Server kan man också använda FileSystemObject för att radera filer, och trigag detta vid DELETE.
Använder man Access så är det nog en bra idé att spara bilderna som filer i en speciell katalog. Problemet är att uploadkomponenten antagerligen kräver samma access till den katalogen som besökarna har...
ASP har ju tillgång till hela filsystemet (där IUSR_XXX har rättigheter), så det är inget större problem.
Man sparar då lämpligast filnamnet i ett fält. Har man många bilder är det klokast att skapa unika filnamn med tex ett post id. Skall man radera posten och filerna, så får man först kolla bildens namn, sedan använda filesystemobjects och radera bilden.
Helt klart!