104 messaggi dal 19 maggio 2001
Ho questo problema :

devo creare una pagina con due semplici link, uno che mi permetta di fare l'upload di un database (un file .mdb) e l'altro che mi permetta di farne il download.
Per quanto riguarda l'upload, o uno script in ASP che mi permette prima di scegliere dove si trova il file (mediante il tasto sfoglia) e poi di inviarlo. Nel mio caso vorrei che il percorso del file sull'harddisk sia già definito nello script e non lo deve trovare l'utente. L'utente deve avere solo il link Upload che fa tutto da solo.
Per quanto riguarda il download, voglio creare un link che mi permetta di scaricare dal server il file .mdb. Non voglio usare ovviamente il tipico "saòva oggetto con nome", ma voglio che cliccando sul link download, lo script asp acceda nella directory in cui si trova il file sul server e lo scarichi in una directory ben precisa sull'HD.
Spero di essere stato chiaro, perchè è un problema che devo risolvere al più presto. Aiutatemi. Grazie.
20 messaggi dal 05 dicembre 2002
www.audiopro.it
Per l'upload dipende dall script che usi, invece di passare il valore di un eventuale campo <INPUT TYPE=FILE> assegni direttamente allo script di upload un percorso standard o dinamico.

Per il download puoi usare uno stream binario, ma la directory di destinazione se la sceglie sempre comunque il cliet quando clicca sul tuo link.
Una funzione "tipo" per lo stream in download può essere questa, dove strFile parametro della funzione è il percorso fisico del file sul server:

Function downloadFile(strFile)

dim intFileLength
dim f

Response.Buffer = true
Response.Clear

set objStream = Server.CreateObject ("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary

set objFS = Server.CreateObject ("Scripting.FileSystemObject")

if not objFS.FileExists(strFile) then
' file non trovato
end if

Set f = objFS.GetFile(strFile)
intFileLength = f.size

objStream.LoadFromFile(strFile)
if err then
downloadFile = err.Number
end if

Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name
Response.AddHeader "Content-Length", intFileLength
Response.Charset ="UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
set objStream = nothing

End Function

:: Fate i bravi e non clonate le pecore!
:: Distractly yours... manight@ufologia.net
104 messaggi dal 19 maggio 2001
quindi non posso fare in modo che la directory in cui fare il download sia già prefissata.
Grazie, proverò il tuo script e ti farò sapere.
20 messaggi dal 05 dicembre 2002
www.audiopro.it
Che io sappia, no... visto che si parla del Client. Però chissà magari c'è qualche scappatoia, fai qualche ricerca...

:: Fate i bravi e non clonate le pecore!
:: Distractly yours... manight@ufologia.net
104 messaggi dal 19 maggio 2001
mi dispiace disturbarti, ma nel provare lo script, mi chiama questo errore :

Informazioni tecniche (per il personale del supporto tecnico)
?Tipo di errore:
ADODB.Stream (0x800A0BB9)
Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
/download.asp, line 12
?Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
?Pagina:
GET /download.asp
?Ora:
mercoledì 11 dicembre 2002, 21.15.37
?Informazioni aggiuntive:
Supporto Microsoft

All'inizio era riferito alla riga :
objStream.Type = adTypeBinary

ma l'ho cancellata e l'errore era sempre lo stesso.
L'errore viene chiamato in pratica sempre dopo la riga :
objStream.Open

come se non riuscisse ad aprire l'oggetto o non riconoscesse la classe ADODB.Stream.
Come posso risolvere ??

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.