Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Forum De Bell Tolls
 
[web] Upload ASP
Clicca QUI per vedere il messaggio nel forum
dan
Ciao a tutti, ho urgente bisogno di sapere come fare l'upload di un file con ASP! :?

Se qualcuno sa come posso fare ... me lo dica!!!

Grazie, D.

[D]ani[J]
prova a buttare un'occhio QUA

ripe
Quello è ASP.NET... credo che lui avesse bisogno ASP.

Allora, qui sotto ti incollo una classe comodissima... come si usa dovrebbe esserti abbastanza chiaro! :)

%
Class FileUpload
Public Files
Private mcolFormElem

Private Sub Class_Initialize()
Set Files = Server.CreateObject("Scripting.Dictionary")
Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub

Private Sub Class_Terminate()
If IsObject(Files) Then
Files.RemoveAll()
Set Files = Nothing
End If
If IsObject(mcolFormElem) Then
mcolFormElem.RemoveAll()
Set mcolFormElem = Nothing
End If
End Sub

Public Property Get Form(sIndex)
Form = ""
If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
End Property

Public Default Sub Upload()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound

biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)

Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)

If nPosFile <> 0 And nPosFile < nPosBound Then
Dim oUploadFile, sFileName
Set oUploadFile = New FileCaricato

nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
Else
nPos = InstrB(nPos, biData, CByteString(Chr(13)))
nPosBegin = nPos + 4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
End If

nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
Loop
End Sub

Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function

Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class

Class FileCaricato
Public ContentType
Public FileName
Public FileData

Public Property Get FileSize()
FileSize = LenB(FileData)
End Property

Public Sub SalvaSuDisco(sPath)
Dim oFS, oFile
Dim nIndex

If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub

Set oFile = oFS.CreateTextFile(sPath & FileName, True)

For nIndex = 1 to LenB(FileData)
oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
Next

oFile.Close
End Sub
End Class
%>

GaL3n
Sicuramente quella di RIPe funge senza problemi in ogni:

<%
Dim bytetotali
Dim binario
Dim I, S
bytetotali = request.totalbytes

if bytetotali < 1000000 then
binario = request.BinaryRead(request.TotalBytes)
For I = 1 To LenB(binario)
S = S & Chr(AscB(MidB(binario, I, 1)))
Next
SimpleBinaryToString = S

else

Dim cl1, cl2, cl3, pl1, pl2, pl3
Dim L
cl1 = 1
cl2 = 1
cl3 = 1
L = LenB(binario)

Do While cl1<=L
pl3 = pl3 & Chr(AscB(MidB(binario,cl1,1)))
cl1 = cl1 + 1
cl3 = cl3 + 1
If cl3>300 Then
pl2 = pl2 & pl3
pl3 = ""
cl3 = 1
cl2 = cl2 + 1
If cl2>200 Then
pl1 = pl1 & pl2
pl2 = ""
cl2 = 1
End If
End If
Loop
S = pl1 & pl2 & pl3

end if

Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\temp\fileprova.txt", ForWriting, True)
f.Write S

f.close

response.write "Ho ricevuto : " & bytetotali & " byte"

%>

fabpicca
...giusto per rimanere in tema...


PHP RULEZ

dan
Sono d'accordo con te ma se su un server mi trovo Access e ASP non posso che utilizzare quelli !

Anche se , appena posso, uso PHP!

ripe
Originally posted by fabpicca
...giusto per rimanere in tema...


PHP RULEZ


Uhm... e su quali basi lo dici?? Secondo me non hai mai scritto una sola riga di ASP... :asd:

:roll:

fabpicca
su quali basi lo dico?
test di performance ne trovi ovunque.

comunque...
potrebbe bastare se ti dicessi ad esempio che le variabili GET e POST sono passate come variabili globali e non necessitano di essere estratte da oggetti request?

o ad esempio che prima di attivare un server IIS ci penserei due volte visti gli enormi problemi di sicurezza, quando invece apache è il miglior webserver sistente per prestazioni e sicurezza?

o magari questa come la vedi?

PHP è gratuito.ASP si paga...a meno che non fai il furbo, certo...

korn
Lavorando con entrambi penso di potermi permettere di dire che PHP è migliore, tuttavia in Italia c'è ancora troppa chiusura mentale verso linux, opensource & soci.

Quando sono io a dover scegliere o proporre punto su PHP, ma se i clienti insistono per avere il sito in ASP sinceramente non oppongo granché di resistenza.

Rocco.Li
Un'altra guerra di religione ? o l'ennesima crociata per tutto cio che e' targato microsoft ?

Un bel CHISSENEFREGA su cosa e' meglio ?

e come discutere se e piu' buono il gelato alla fragola o quello ai frutti di bosco...

dan
Originally posted by GaL3n
Sicuramente quella di RIPe funge senza problemi in ogni:

<%
Dim bytetotali
Dim binario
Dim I, S
bytetotali = request.totalbytes

if bytetotali < 1000000 then
binario = request.BinaryRead(request.TotalBytes)
For I = 1 To LenB(binario)
S = S & Chr(AscB(MidB(binario, I, 1)))
Next
SimpleBinaryToString = S

else

Dim cl1, cl2, cl3, pl1, pl2, pl3
Dim L
cl1 = 1
cl2 = 1
cl3 = 1
L = LenB(binario)

Do While cl1<=L
pl3 = pl3 & Chr(AscB(MidB(binario,cl1,1)))
cl1 = cl1 + 1
cl3 = cl3 + 1
If cl3>300 Then
pl2 = pl2 & pl3
pl3 = ""
cl3 = 1
cl2 = cl2 + 1
If cl2>200 Then
pl1 = pl1 & pl2
pl2 = ""
cl2 = 1
End If
End If
Loop
S = pl1 & pl2 & pl3

end if

Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\temp\fileprova.txt", ForWriting, True)
f.Write S

f.close

response.write "Ho ricevuto : " & bytetotali & " byte"

%>


E come faccio a dirgli in che directory mettere il file?
Per i permessi come funziona?

Grazie, D.

ripe
Originally posted by fabpicca
su quali basi lo dico?
test di performance ne trovi ovunque.

comunque...
potrebbe bastare se ti dicessi ad esempio che le variabili GET e POST sono passate come variabili globali e non necessitano di essere estratte da oggetti request?

o ad esempio che prima di attivare un server IIS ci penserei due volte visti gli enormi problemi di sicurezza, quando invece apache è il miglior webserver sistente per prestazioni e sicurezza?

o magari questa come la vedi?

PHP è gratuito.ASP si paga...a meno che non fai il furbo, certo...


Terrificante. Sono dei punti talmente critici da rendere SCHIACCIANTE la superiorità di php rispetto ad asp. Avevi ragione.
































:rotfl:

Rocco.Li
Terrificante davvero.
Il gelato alla fragola devi pagarlo...
...quello ai frutti di bosco ha i lamponi globali sopra !!!
ah, devi essere anche aperto mentalmente per mangiarlo...

Wow quasi quasi da oggi mangio solo il gelato al gianduja (JSP)...

dan
Originally posted by Rocco.Li
Terrificante davvero.
Il gelato alla fragola devi pagarlo...
...quello ai frutti di bosco ha i lamponi globali sopra !!!
ah, devi essere anche aperto mentalmente per mangiarlo...

Wow quasi quasi da oggi mangio solo il gelato al gianduja (JSP)...


:cannabis: ?

Rocco.Li
Originally posted by dan
:cannabis: ?


:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr::prr::prr::prr::prr::prr:
:prr::prr::prr::prr::prr:

dan
Originally posted by Rocco.Li
:prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr::prr::prr::prr::prr::p
rr::prr::prr::prr::prr::prr:


:lol:

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate