با سلام
زيبا جان من اصلا با بانك اس كيو ال كار نكردم ولي بايد خدمتت عرض كنم كه با بانك اكسس من تونستم كه هر نوع فايلي رو توي بانك آپلود كنم
البته من مستقيما توي بانك آپلود مي كنم و بعد ازش استفاده مي كنم ( من اينجا برات روش كار خودمو توضيح مي دم اگه دوست داشتي بگو برات فايل بذارم - البته اين روزا خيلي كم آن ميشم ولي حتما جوابتو مي دم )
من توي بانكم يه جدول درست كردم با فيلد هاي زير :
id, name , text , data , type, size
كه به ترتيب آي دي - نام -متن توضيحي - خود فايل - نوع فايل - حجم هستن
براي آپلود كردن از آبجكت aspSmartUpload استفاده مي كنم و كدش در زير هستش
کد:
server.ScriptTimeout=360
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.MaxFileSize = 2049000
mySmartUpload.CodePage = 65001
mySmartUpload.Upload
Set File = mySmartUpload.Files("file")
If file.IsMissing Then
File.Delete
else
set conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=dbp;"
set rs=Server.CreateObject("ADODB.recordset")
varSQL = "SELECT * FROM down;"
rs.Open varSQL, conn,2,3
rs.AddNew
file.FileToField rs("data")
rs("name") = File.FileName
rs("size") = File.Size
rs("type") =file.FileExt
rs("text") =mySmartUpload.Form("text")
rs.Update
rs.close
conn.close
end if
حالا طريقه دانلود كردن
کد:
varSQL = "SELECT * FROM down where id = " & Request("id")& ";"
set conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=dbp;"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open varSQL, conn
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment;filename=" & Trim(rs("name"))
Response.AddHeader "Content-Length", rs("size")
Response.BinaryWrite rs("data")
rs.close
conn.close
البته بهترين كار اينه كه كد بالا رو توي يك فايل قرار بدي و اون رو اين شكلي صدا بزني :
down.asp?id=2
اميدوارم مشكلت حل بشه
به اميد موفقيت