---
title: "Uploadscript utan komponent"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/46131-uploadscript-utan-komponent/page3"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "OveRRidE"
published: "2002-06-18T07:09:05.000Z"
updated: "2007-09-04T23:17:00.000Z"
replies: 307
views: 16871
page: 3
pages: 16
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/46131-uploadscript-utan-komponent"
---

# Uploadscript utan komponent

_Sida 3 av 16._

## #41 — solbulle, 2002-07-03T17:38Z

Detta tror jag ska fungera, dock tycker jag helt klart att du ska sköta en första koll av att formuläret innehåller något direkt i formuläret med hjälp av javascript.
Annars måste ju killen mer eller mindre ladda upp sin fil innan man får felmesset.

```
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

'Exempel på hur man kan 'plocka ner' andra forumlärelement
'email = UploadRequest.Item("email").Item("Value")

namn= UploadRequest.Item("namn").Item("Value") 
typ= UploadRequest.Item("typ").Item("Value") 
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")

If namn = "" OR typ = "" then
response.write "Du måste välja en fil, skriva ett namn och välja typ av programmeringsspråk!"
Else

'Create FileSytemObject Component
  If byteCount<=50000 THEN

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(filename))

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close

response.write "<font face=Verdana size=1>Din fil är upladdad utan problem!<br><br></font>"
response.write "<font face=Verdana size=1><a href=java script:window.close()>Stäng</a></font>"

Datum = Now
SQL = "INSERT INTO script_upload ([namn], [datum], [av], [typ], [filnamn]) VALUES('" & namn & "',#"& Datum &"#,'" & session("anvandarnamn") & "','" & typ & "','" & filename & "')"
Databas.Execute(SQL)

else
response.write "Du har antingen en fil som inte har filändelse .jpg eller så är den större än 50 kb."
end if
end if
%>
```

Permalänk: https://www.webforum.nu/p/712819

## #42 — Mossa, 2002-07-09T14:30Z

Var ska denna kodsnutt placeras?

Var och i vilken fil skall jag lägga in...

```
If contentType="image/pjpeg" THEN
```

som Toonster tipsade om? Kan ju iofs tänka mig att jag kan lägga det nästan varsomhelst (efter den har kollat filnamn o typ) men ändå - för att det inte ska vara bristfälligt!?

/Mossa

Permalänk: https://www.webforum.nu/p/715751

## #43 — solbulle, 2002-07-09T14:42Z

Om du kikar på koden ovanför så skulle jag nog lagt det i anslutning till raden:

If byteCount\<=50000 THEN

Permalänk: https://www.webforum.nu/p/715760

## #44 — Mossa, 2002-07-14T11:34Z

Response.redirect

Om jag istället för respone.write "filen laddades upp ... " i slutet av koden vill ha respone.redirect (för att skicka till en helt ny sida efter att filen laddats upp eller till en ny sida med felmeddelande om filen är i fel format) så antar jag att det vållar lite problem med tanke på att upload.asp ligger som include i slutet? Och respone.redirect ligger innan det.

Hajjar ni? :)

/Mossa

Permalänk: https://www.webforum.nu/p/721109

## #45 — Mossa, 2002-07-14T12:06Z

Verkar fungera iaf... trodde jag inte.

/Mossa

Permalänk: https://www.webforum.nu/p/721125

## #46 — sin_adec, 2002-07-30T15:34Z

tänk om

tänk om medlemmarna laddar upp bilder i samma mapp och råkar ha samma namn...

är det ngn som vet en funktion som ändrar namnen på bilderna....

Permalänk: https://www.webforum.nu/p/736387

## #47 — Toonster, 2002-07-30T15:38Z

Enklast är att skapa ett unikt filnamn med hjälp av en slumpgenerator, eller använd datum-klockckslag

/T

Permalänk: https://www.webforum.nu/p/736388

## #48 — sin_adec, 2002-07-30T15:55Z

skulle du kunna förklara närmare...

Permalänk: https://www.webforum.nu/p/736407

## #49 — OveRRidE, 2002-07-30T16:31Z

Läs om exakt samma problem här: <http://www.webforum.nu/showthread.php?s=&threadid=48011>

Permalänk: https://www.webforum.nu/p/736445

## #50 — crisse6, 2002-08-01T14:32Z

om man använder datum/klockslag så kan det ju ändå bli samma om sidan är en populär sådan ;)

Permalänk: https://www.webforum.nu/p/738273

## #51 — Toonster, 2002-08-02T10:17Z

Nej, inte om man har med sekunder.

/T

Permalänk: https://www.webforum.nu/p/738826

## #52 — Pellefant, 2002-11-08T12:53Z

Hej!

Det var ett toppenscript.

En fråga, på defaultsidan, står det bläddra på knappen, var kan man ändra det till "Browse" ? (Har letat igenom de tre filerna, men den verkar inte satt till "Bläddra" någonstans, eller är det någon grundinställning, så att de med engelska Windows ser "Browse" automatiskt?

Tacksam för hjälp.

P.s Att ge olika namn på filerna, så att de inte radera varandra om olika användare laddar upp, kommer jag att göra idag, förmodligen år-månad-datum-timme-minut-sekund-filnamn, tex 20021108135223filnamn.txt , eller något slumpat namn. Jag postar koden här sedan om någon är intresserad. :)

Permalänk: https://www.webforum.nu/p/847312

## #53 — OveRRidE, 2002-11-08T12:58Z

> En fråga, på defaultsidan, står det bläddra på knappen, var kan man ändra det till "Browse" ? (Har letat igenom de tre filerna, men den verkar inte satt till "Bläddra" någonstans, eller är det någon grundinställning, så att de med engelska Windows ser "Browse" automatiskt?

Det är en grundinställning. Texten på knappen varierar beroende på vilket språk du har. 

Skriver du \<input type="file"\> blir det automatiskt en ruta och en knapp, så den kan du inte påverka.

Permalänk: https://www.webforum.nu/p/847321

## #54 — crisse6, 2003-01-05T04:03Z

Du Override, har lite problem nu osa, konstigt nog. Filerna funkade utmarkt osa nar dom lag i en annan mapp (upload).. men det var bara for testkorning (vill inte blanda fardigt med icke fardigt), men nar jag flyttade och forsokte ladda upp sa far jag detta felmess:

```
Microsoft VBScript runtime error '800a0005' 

Invalid procedure call or argument: 'MidB' 

/forum/upload.asp, line 6
```

line 6 ar;

```
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
```

Varfor?

Permalänk: https://www.webforum.nu/p/902650

## #55 — crisse6, 2003-01-05T17:59Z

sa har ser min outputfile.asp fil ut (Response.Buffer = True ligger over):

```
<%
Randomize
Response.Expires=0
Response.Clear

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

'Lite olika variabler

'Deklarerar variablen strMaxSize till 50000 bytes = 50 kb
strMaxSize = Request.TotalBytes

'strUsr är sessionsID:et
strUsr = "_"&session("sessionsID")

'strRandom skapar ett slumpat nummer
strRandom = CiNT(1-9000 * Rnd + 9000)

'strDt plockar ner datum
strDt = 	DatePart("m", Now())&"_"&_
		DatePart("d", Now())&"_"&_
		DatePart("yyyy", Now())

'strFile deklareras till formularfältet på default.asp
strFile = UploadRequest.Item("blob").Item("ContentType")

'I detta fall har vi bara .gif vi behöver oroa oss för och tar bara de 3 tecken från höger
strForm = Right(strFile,3)

'strAll kopplar ihop allting
strAll = strRandom&strDt&strUsr&"."&strForm

filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))
value = UploadRequest.Item("blob").Item("Value")

'Skapar objekt
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
If strFile="image/pjpeg" OR strFile="image/gif" THEN

'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
	If strMaxSize > 50000 then
		response.write "Bilden är för stor, "& strMaxSize &" bytes. Den får max vara 50000 bytes (50kb)."
	else

'Skapa och skriv fil
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(filename))

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath(filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""" & filename & """>"

strSqlAddPic = "Update t_users set avatar = '"& filename &"' Where ID = "& session("sessionsID")
objConn.execute strSqlAddPic,,128

End IF
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
Else
response.write "Bilden måste vara av formatet .gif eller jpg."
End IF
%>
```

Permalänk: https://www.webforum.nu/p/902895

## #56 — solbulle, 2003-01-05T18:09Z

Var inkluderar du upload.asp?

Permalänk: https://www.webforum.nu/p/902903

## #57 — solbulle, 2003-01-05T18:12Z

Sen verkar lite kod ramlat bort...

```
<%
Response.Buffer = TRUE
Randomize
Response.Expires=0
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin
```

Permalänk: https://www.webforum.nu/p/902906

## #58 — crisse6, 2003-01-05T18:56Z

Japp, funkar nu... Men nu vill jag gora sa att om det finns en bild i faltet ("avatar") sa ska den nya uppladdningen ersatta den gamla bilden genom att anvanda samma namn som den befintliga bilden. Det funkar. Men nu om det ar tomt i db:n sa blir det nu "Permission Denied" pa den kod jag kor... sa har ser det ut... 

```
[red]
If objRS.eof then
strAll = strRandom&strDt&strUsr&"."&strForm
filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))
else
strAll = objRS("avatar")
filename = objRS("avatar")
End IF
[/red]
```

Permalänk: https://www.webforum.nu/p/902927

## #59 — Jesper T, 2003-01-05T19:10Z

Har du rätt sökväg till katalogen då?

Permalänk: https://www.webforum.nu/p/902934

## #60 — solbulle, 2003-01-05T19:30Z

Å på vilken rad fårdu felmeddelandet, de du visar?

Permalänk: https://www.webforum.nu/p/902949

---

Tråden på webben: https://www.webforum.nu/amne/asp/46131-uploadscript-utan-komponent/page3  
Föregående sida: https://www.webforum.nu/amne/asp/46131-uploadscript-utan-komponent/page2.md  
Nästa sida: https://www.webforum.nu/amne/asp/46131-uploadscript-utan-komponent/page4.md
