AspUpload del 1 - Ladda upp fil(er)
Förord
AspUpload är en kraftfull komponent som du kan har stor nytta av att ha installerad på servern. Den låter dig inte enbart ladda upp filer utan även flytta, döpa om, mm. Genom denna första artikel så kommer jag visa dig hur man gör för att ladda upp en/flera filer till en specifik mapp på servern. Jag kommer att förutsätta att du inte har använt AspUpload tidigare, så du ska inte känna dig skärrad av att du är ny på denna komponent. Vid frågor angående artikeln så maila mig påInnehåll
»»
»
»
»
»
Relaterade artiklar
» AspUpload Del 2 - arbeta med filen
aspupload_del1.html
Vi börjar med att göra html-filen som vi ska använda till att välja filer som vi ska skicka till servern. Gör en ”normal” html sida med ett FORM. Det är mycket viktigt att form:et har enctype="multipart/form-data"
inom form taggen. Detta gör att form:et kan skicka annat än enbart text (å det vill vi ju). Sen lägger vi in någon/ra input-file field inom form taggen. Du lägger till så många fält som du vill ha, självklart. Du kan lägga till en eller hundra om du hellre vill det. AspUpload fungerar så finurligt att den fixar det. Slutligen så lägger du till en submit knapp så att du kan skicka iväg filerna när du är klar.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Aspupload del I
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1">
<p>
<input type="file" name="fil1">
</p>
<p>
<input type="file" name="fil2">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>
Notera att name-värdet på input fälten är valfritt att välja vad du vill. Så om du vill döpa dom till bosseP och gurraG är det helt i sin ordning. Men för lag och ordning så har jag döpt dom till fil1 och fil2 för översiktens skull.
aspupload_del_I.asp
Ja, nu kommer det roliga, asp-knackningen. Vi börjar med att kontakta komponenten, så här:
Set Upload = Server.CreateObject("Persits.Upload.1")
‘eller
Set Upload = Server.CreateObject("Persits.Upload")
Nu när du har kontakt, så är det dags att säga till aspupload vart du vill ha filerna sparade. Det finns två sätt att göra detta, eller ja, två olika komandon; Save eller SaveVirtual. Vad är det förskillnad på dessa kan man undra? Jo det är så här att om man ligger som jag och pellesoft på
Kopplar dom ”ur” Save kommandot i just säkerhetsskäl, men för att man ska kunna nyttja aspupload då använder man ”Save.Virtual” kommandot istället. Jag har enbart använt Save.Virtual så jag kan inte säga om man förlorar något på detta, har i alla fall inte märkt någon begränsning. Tillbaka till koden. Vi använder alltså här Save.Virtual så här:
Count = Upload.SaveVirtual("bilder/”)
VIKTIGT! Sätt skrivrättigheter på den mappen som ni ska ladda upp till.
Oftast så vill man ju inte att dom filerna som man laddar upp ska skriva över filer som redan finns på i mappen. För att komma runt detta så skriver man så här i koden.
Upload.OverwriteFiles = False
OverwriteFiles är som default(standard) true, dvs att den skriver över filerna.
Nu är grund filen färdig. Dvs du kan ladda upp två stycken eller fler filer till mappen bilder utan att dom skriver över befintliga filer. Så här ser hela koden nu.
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.SaveVirtual("bilder/”)
Upload.OverwriteFiles = False
%>
Kort och fin kod va?
Filnamnet i en databas då?
Nu när vi fått ihop filen för uppladdningen av filerna. Så kan det vara användbart att kunna lägga filnamnet in i en db, för bland annat nyhetssidor m m. Det gör man så här.När du använder AspUpload så kan du inte använda Request.Form utan att du får änvända Upload.Form istället. Ingen större skillnad på nyttjandet på dem båda. Så här ser koden ut för att få tag på enbart filnamn.xxx.
rs("fil1") = Upload.Files(1).ExtractFileName 'fil1
rs("fil2") = Upload.Files(2).ExtractFileName 'fil2
Andra finneser
Du kan även sätta en gräns på hur stora filerna får vara som laddas upp. Detta ska ni göra så att ni inte får någon som försöker att ladda upp någon fil som är förstor helt enkelt. Detta gör ni men denna kod. Den ska ligga innan SaveVirtual raden.
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 50000 'filer större än 50k blir korrupta
Count = Upload.SaveVirtual("bilder/”)
Upload.OverwriteFiles = False
%>
Joakim Schlangberg
Hej! HAr sökt runt på nätet och hittat en del om att ladda upp filer till server men dock väldigt svåra för mig (glad amatör) att förstå!. Denna artikel gav ljus i mörket och jag ska höra med mitt webbhotel om de har aspUpload installerat......Annars får jag nog på den krångliga lösningen(att göra en egen komponent!?!?!???!??). Tack för en bra artikel! /Jocke
Christian Pettersson
jag får inte äns se artikeln..