Buongiorno a tutti,
sono nuovo da queste parti e giusto per tenervi in allenamento ho pensato di sottoporvi un quesito che mi stà facendo impazzire....veniamo al dunque ho sfruttato uno script per fare l'upload di alcuni file all'interno di un database...fin quì tutto bene peccato che quando vado a cliccare sul link generato per scaricare il file questo venga rinominato arbitrariamente col nome della pagina stessa...(lo so mi spiego come un libro stracciato)...esempio
http://xxx.xxxx.xxx/DataFile.asp?FileID=5 (che magari fa riferiemento al documento di testo.txt)
mi farà scaricare Datafile.asp con all'interno il contenuto di testo.txt per l'appunto è come se il file venisse rinominato e non mi spiego il perchè di seguito posto il codice che ho usato:
Trasferimento.asp
</p>
<H2>Selezionare il file da trasferire. </H2>
<FORM method="post" encType="multipart/form-data" action="ToDatabase.asp">
<INPUT type="File" name="File1">
<INPUT type="Submit" value="Upload">
</FORM>
ToDatabase.asp
<%
Dim oUpload
Dim oField
Dim oConn
Dim oRs
Dim sSQL
Dim sFileName
Set oUpload = New clsUpload
Set oFile = oUpload("File1")
' parse the file name
sFileName = oFile.FileName
If Not InStr(sFileName, "\") = 0 Then
sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
End If
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRs = Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("./") & "\db\Upload.mdb"
sSQL = "SELECT FileID, FileName, FileSize, ContentType, BinaryData FROM Files WHERE 1=2"
oRs.Open sSQL, oConn, 3, 3
oRs.AddNew
oRs.Fields("FileName") = sFileName
oRs.Fields("FileSize") = oFile.Length
oRs.Fields("ContentType") = oFile.ContentType
oRs.Fields("BinaryData").AppendChunk = oFile.BinaryData & ChrB(0)
oRs.Update
oRs.Close
sSQL = "SELECT Top 1 FileID, FileName From Files Order By FileID Desc"
oRs.Open sSQL, oConn
If Not oRs.EOF Then
%>
Il file è stato correttamente salvato nel database. Di seguito il Link per visualizzarlo:
<%=oRs(1)%>
<%
End If
Set oRs = Nothing
Set oConn = Nothing
Set oFile = Nothing
Set oUpload = Nothing
%>
</p>
DataFile.asp
<%
Dim oConn
Dim oRs
Dim sSQL
Dim nFileID
nFileID = Request.QueryString("FileID")
If Not nFileID = "" And IsNumeric(nFileID) Then
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRs = Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("./") & "\db\Upload.mdb"
sSQL = "SELECT FileName, ContentType, BinaryData FROM Files WHERE FileID = " & Request.QueryString("FileID")
oRs.Open sSQL, oConn, 3, 3
If Not oRs.EOF Then
Response.ContentType = oRs(1)
Response.BinaryWrite oRs(2)
Else
Response.Write("File non trovato")
End If
oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing
Else
Response.Write("File non trovato")
End If
%>
Help me...![]()
Grazie anticipatamente