Avatar billede superraider Nybegynder
08. april 2004 - 23:08 Der er 3 kommentarer og
1 løsning

Upload fil, system der kan uppe fil og ændre dens filnavn

Jeg søger en guide på at lave et form der kan uploade en fil til serveren, og så skal den give filen et nyt navn

hvor kan jeg fidne det:
Avatar billede and_ Nybegynder
08. april 2004 - 23:28 #1
Avatar billede superraider Nybegynder
09. april 2004 - 00:14 #2
har fundet kode der virker nu. jeg kan bare ikke lige få lavet sådan den gemmer filen i dir /pdf/ i stedet for den dir som asp filen ligger i


<%
response.buffer = true
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
key = request.querystring("key")

If key = 1 then
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest(RequestBin)
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/faktura.mdb")
Conn.Open DSN

strsql = "SELECT * FROM [Dokumenter] Order by ID desc"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
count = rs("Id") +1

tmp=filename
extention = Right(tmp,Len(tmp) - Instr(tmp,"."))
'her kan filnanv angives
filename= count & "." & extention
value = UploadRequest.Item("blob").Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(""&filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close   
Sub BuildUploadRequest(RequestBin)
  PosBeg = 1
  PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
  boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
  boundaryPos = InstrB(1,RequestBin,boundary)
  Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
  Dim UploadControl
  Set UploadControl = CreateObject("Scripting.Dictionary")
  Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
  Pos = InstrB(Pos,RequestBin,getByteString("name="))
  PosBeg = Pos+6
  PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
  Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
  PosBound = InstrB(PosEnd,RequestBin,boundary)
    If  PosFile<>0 AND (PosFile<PosBound) Then
    PosBeg = PosFile + 10
    PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    UploadControl.Add "FileName", FileName
    Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
    PosBeg = Pos+14
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    UploadControl.Add "ContentType",ContentType
    PosBeg = PosEnd+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    Else
    Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
    PosBeg = Pos+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    End If
    UploadControl.Add "Value" , Value   
    UploadRequest.Add name, UploadControl   
    BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
  Loop
  End Sub
  Function getByteString(StringStr)
  For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
  Next
  End Function
  Function getString(StringBin)
  getString =""
  For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
  Next
  End Function
  Response.Redirect "upload.asp"
End If
%>



<HTML>
  <HEAD>
</HEAD>
<BODY>
  <form METHOD='Post' ENCTYPE='multipart/form-data' ACTION='default.asp?key=1' id='form3' name='form3'>
    <input TYPE="file" NAME="blob" class="input">
    <input type='submit' name='Action' value='UPLOAD'>
  </form>
</body>
Avatar billede and_ Nybegynder
09. april 2004 - 01:43 #3
det er da klart at du ikke kan få den til at gemme filen i et andet dir når du fortæller enginen at den skal gemme den i:

Set MyFile = ScriptObject.CreateTextFile(Server.mappath(""&filename))

dette skal jo pege på mappen:

Set MyFile = ScriptObject.CreateTextFile(Server.mappath("./dir/pdf" & filename))

så skulle det meget gerne virke....
jeg skrubber i seng.... kigger ind i morgen formiddag :D
Avatar billede superraider Nybegynder
09. april 2004 - 01:49 #4
ja jeg fandt det også, der skal dog ikke et punktum med
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester