Forum » Izdelava spletišč » Pomoč: Asp upload
Pomoč: Asp upload

tejcek ::
torej, že nekaj časa googlam in ne najdem PURE Asp skripte, kjer bi lahko uploadu slike na strežnik. Gre za to, da se na sami strani logiraš, nato pa bi želel prenesti sliko na strežnik v točno določeno mapo.
Thx
Thx

mile ::
tole jaz uporabljam...nisem našel na netu, zato ti kar pejstam
<%
'=================
' FileSystemObject
'=================
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Upload Script Version 1.2
'Copyright © 2004, Yusuf Wiryonoputro. All rights reserved.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Server.ScriptTimeout = 7000
Class Upload
Private nFileCount
Private dictRequest
'Private dictRequestFiles(5,6)
Private dictRequestFiles()
Private sAllowedTypes
Private sBannedTypes
Private nMaxFileSize
Private nErrNum
Private sErrMsg
Public Sub Recieve()
nErrNum = 0
sContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")
if InStr(sContentType,"multipart/form-data")=0 Then
nErrNum = 1
sErrMsg = "Form enctype is not multipart/form-data"
Exit Sub
End If
binData = Request.BinaryRead(Request.TotalBytes) '1
if Request.Totalbytes > nMaxFileSize then
nErrNum = 2
sErrMsg = "The posted data exceeds the maximum size allowed."
' Exit Sub
End If
'binData = Request.BinaryRead(Request.TotalBytes) '2
'Kalau 1 enable => tdk error
'Kalau 1 disable, 2 enable => error
lenBinData = lenB(binData)
set adoRs = server.CreateObject("ADODB.Recordset")
If lenBinData>0 Then
adoRs.Fields.Append "UploadData", 201, lenBinData
adoRs.Open
adoRs.AddNew
adoRs("UploadData").AppendChunk binData
adoRs.Update
sData = adoRs("UploadData")'Char
End If
arrTemp = split(sContentType,";")
sBoundary = Split(Trim(arrTemp(1)), "=")(1)
arrFieldValue = Split(sData,sBoundary)
set dictRequest = server.CreateObject("Scripting.Dictionary")
sBrowser = UCase(Request.ServerVariables("HTTP_USER_AGENT"))
nFileCount=0
For i=0 To UBound(arrFieldValue)
fieldSeparate = InStr(arrFieldValue(i), Chr(13) & Chr(10) & Chr(13) & Chr(10))
If fieldSeparate>0 Then
fieldEnd = fieldSeparate-3
valueStart = fieldSeparate+4
valueEnd = Len(arrFieldValue(i)) - fieldSeparate - 4 - 3
sFieldRaw = Mid(arrFieldValue(i), 3 , fieldEnd)
sValue = Mid(arrFieldValue(i), valueStart , valueEnd)
If InStr(sFieldRaw,"filename=")>0 Then
sLocal = getLocal(sFieldRaw)
If InStr(sBrowser,"WIN")>0 Then
posStart = InStrRev(sLocal, "\") + 1
sFileName = Mid(sLocal, posStart)
End If
If InStr(sBrowser,"MAC")>0 Then
sFileName = sLocal
End If
ReDim dictRequestFiles(5,6)
dictRequestFiles(nFileCount,0) = getFieldName(sFieldRaw)
dictRequestFiles(nFileCount,1) = sFileName
dictRequestFiles(nFileCount,2) = sValue 'or File Data
dictRequestFiles(nFileCount,3) = sLocal
dictRequestFiles(nFileCount,4) = getFileType(sFieldRaw)
dictRequestFiles(nFileCount,5) = IsAllowed(sFileName)
nFileCount=nFileCount+1
Else
dictRequest.Add getFieldName(sFieldRaw),sValue
End If
End If
Next
End Sub
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' PRIVATE
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Private Function getFieldName(s)
posStart = InStr(s, "name=") + 6 '6 krn ada tambahan "
if InStr(s,Chr(34) & ";")>0 Then 'Chr(34) = "
's => Content-Disposition: form-data; name="File1";
filename="C:\Documents and Settings\Ys\My Documents\mytext.txt"
' Content-Type: text/plain
posEnd = InStr( posStart , s, Chr(34) & ";" )
Else
's => Content-Disposition: form-data; name="inpNewFileName"
posEnd = inStr( posStart , s, Chr(34))
End If
getFieldName = Mid(s, posStart , posEnd - posStart)
End Function
Private Function getLocal(s)
posStart = InStr(s, "filename=") + 10
posEnd = InStr(s, Chr(34) & Chr(13) & Chr(10))
getLocal = Mid(s, posStart, posEnd-posStart)
End Function
Private Function getFileType(s)
posStart = InStr(s, "Content-Type: ")
GetFileType = Mid(s, posStart + 14)
End Function
Private Function IsAllowed(sFileName)
For Each Item In Split(sFileName,".")
sExtention = Item
Next
IsAllowed = false
For Each Item In Split(sAllowedTypes,"|")
If LCase(Item) = LCase(sExtention) or LCase(Item) = "*" Then
IsAllowed = true
End If
Next
For Each Item In Split(sBannedTypes,"|")
If LCase(Item) = LCase(sExtention) Then
IsAllowed = false
End If
Next
End Function
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' PUBLIC
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Public Property Let AllowedTypes(sVal)
sAllowedTypes = sVal
End Property
Public Property Let BannedTypes(sVal)
sBannedTypes = sVal
End Property
Public Property Let MaxFileSize(nVal)
nMaxFileSize = nVal
End Property
Public Property Get ErrNum
ErrNum = nErrNum
End Property
Public Property Get ErrMsg
ErrMsg = sErrMsg
End Property
'~~~~~~~~~~~~
Public Function RequestValue(s)
For i=0 To nFileCount 'untuk file
if dictRequestFiles(i,0) = s Then
RequestValue = dictRequestFiles(i,1)
exit function
End If
Next
RequestValue = dictRequest(s) 'utk selain file
End Function
Public Function RequestFileContent(s)
if Len(CStr(nFileCount)) = 0 then
RequestFileContent = null
exit function
End If
For i=0 To nFileCount
if dictRequestFiles(i,0) = s Then
RequestFileContent = dictRequestFiles(i,2)
exit function
End If
Next
RequestFileContent = null
End Function
Public Function RequestFileStatus(s)
if Len(CStr(nFileCount)) = 0 then
RequestFileStatus = null
exit function
End If
For i=0 To nFileCount
if dictRequestFiles(i,0) = s Then
RequestFileStatus = dictRequestFiles(i,5)
exit function
End If
Next
End Function
Public Function RequestFileType(s)
if Len(CStr(nFileCount)) = 0 then
RequestFileType = null
exit function
End If
For i=0 To nFileCount
if dictRequestFiles(i,0) = s Then
RequestFileType = dictRequestFiles(i,4)
exit function
End If
Next
RequestFileType = null
End Function
Public Function SaveFile(sPath,sContent)
Set fso = server.CreateObject("Scripting.FileSystemObject")
Set sFile = fso.CreateTextFile(sPath, True) 'Hati2
sFile.Write(sContent)
sFile.Close
Set fso = Nothing
End Function
End Class
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'above: Upload Script Version 1.2
'Copyright © 2003, Yusuf Wiryonoputro. All rights reserved.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dim sUploadedFile
sUploadedFile=""
set oFSO = server.CreateObject ("Scripting.FileSystemObject")
Set oUpload = New Upload
'oUpload.AllowedTypes = "gif|jpg"
oUpload.AllowedTypes = "*" 'Accept all file types
oUpload.BannedTypes="exe|com|bat|dll|vbs|js|asp"
oUpload.MaxFileSize = 9500000
oUpload.Recieve()
If oUpload.ErrNum=1 Then 'DEFAULT (Form enctype is not multipart/form-data)
ffilter=request("ffilter")'ffilter
if(Len(CStr(request("inpCurrFolder")))=0) then
currFolder = server.MapPath(arrBaseFolder(0)) 'opened folder (Physical)
else
currFolder = request("inpCurrFolder") 'opened folder (Physical)
end if
if(Len(CStr(request("inpFileToDelete")))<>0) then 'Delete File
Set oFile = oFSO.GetFile(Server.MapPath(CStr(request("inpFileToDelete"))))
oFile.Delete
end if
sMsg = ""
Else
ffilter=oUpload.RequestValue("inpFilter")'ffilter
'UPLOAD PROCESS HERE
if(Len(CStr(oUpload.RequestValue("inpCurrFolder2")))=0) then
currFolder = server.MapPath(arrBaseFolder(0)) 'opened folder (Physical)
else
currFolder = oUpload.RequestValue("inpCurrFolder2") 'opened folder (Physical)
end if
If oUpload.ErrNum=0 Then
If oUpload.RequestFileStatus("File1") Then
sPath = currFolder & "\" & oUpload.RequestValue("File1")
sContent = oUpload.RequestFileContent("File1")
oUpload.SaveFile sPath,sContent
sUploadedFile=mid(sPath,InStrRev(sPath,"\")+1)'uploaded file
Else
sMsg = "The File Type is not allowed."
End If
Else 'Ex. "The posted data exceeds the maximum size allowed."
sMsg = oUpload.ErrMsg
End If
End If
Set oUpload = Nothing
%>
Zgodovina sprememb…
- spremenil: BluPhenix ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Prosim pomagajte! Potrebujem program, ki bi pobiral podatke iz ene straniOddelek: Programiranje | 2797 (2407) | David1994 |
» | [excel] makro | excel -pomocOddelek: Programiranje | 2020 (1804) | smetko |
» | kopiranje iz enega fajla v drug??Oddelek: Programiranje | 1271 (1031) | Seth |
» | API+VBOddelek: Programiranje | 2157 (1861) | webblod |
» | vkljucevanje txt datoteke v ...Oddelek: Programiranje | 1624 (1400) | webblod |