Current location: Hot Scripts Forums » Programming Languages » ASP » File Management, sorry i keep changing, this is the last one! :)


File Management, sorry i keep changing, this is the last one! :)

Reply
  #21 (permalink)  
Old 08-26-03, 03:55 PM
Shane Shane is offline
Coding Addict
 
Join Date: Jun 2003
Location: Maryland, US
Posts: 268
Thanks: 0
Thanked 0 Times in 0 Posts
Is that your upload code? If that is your upload code, you won't want to add 1 to the download count because no one downloaded it. You should just set it to 0.

You should add that code to your download code, though.

And yes, you can have more than one Response.Write.
__________________
Shane Bauer
Microsoft Certified Professional (MCP) - ASP.NET
ASP/ASP.net, C#, VB/VB.NET, PHP, Perl, SQL
Reply With Quote
  #22 (permalink)  
Old 08-26-03, 04:23 PM
Arctic Arctic is offline
Wannabe Coder
 
Join Date: Jul 2003
Location: BC, Canada
Posts: 120
Thanks: 0
Thanked 1 Time in 1 Post
Im just gonna show u my files.

insert.asp -- the file that shows the info on the file just uploaded.
============================
<% ' Insert.asp %>
<!--#include file="Loader.asp"-->
<%
Response.Buffer = True

' load object
Dim load
Set load = new Loader

' calling initialize method
load.initialize

' File binary data
Dim fileData
fileData = load.getFileData("file")
' File name
Dim fileName
fileName = LCase(load.getFileName("file"))
' File path
Dim filePath
filePath = load.getFilePath("file")
' File path complete
Dim filePathComplete
filePathComplete = load.getFilePathComplete("file")
' File size
Dim fileSize
fileSize = load.getFileSize("file")
' File size translated
Dim fileSizeTranslated
fileSizeTranslated = load.getFileSizeTranslated("file")
' Content Type
Dim contentType
contentType = load.getContentType("file")
' No. of Form elements
Dim countElements
countElements = load.Count
' Value of text input field "fname"
Dim fnameInput
fnameInput = load.getValue("fname")
' Value of text input field "lname"
Dim lnameInput
lnameInput = load.getValue("lname")

' destroying load object
Set load = Nothing
%>

<html>
<head>
<title>FilesDomain.net - Upload</title>
<style>
body, input, td { font-family:verdana,arial; font-size:10pt; }
</style>
</head>
<body>
<p align="center">
<b>Inserting Binary Data into Database</b><br>
<a href="show.asp">To see inserted data click here</a>
</p>

<table width="700" border="1" align="center">
<tr>
<td>File Name</td><td><%= fileName %></td>
</tr><tr>
<td>File Path</td><td><%= filePath %></td>
</tr><tr>
<td>File Path Complete</td><td><%= filePathComplete %></td>
</tr><tr>
<td>File Size</td><td><%= fileSize %></td>
</tr><tr>
<td>File Size Translated</td><td><%= fileSizeTranslated %></td>
</tr><tr>
<td>Content Type</td><td><%= contentType %></td>
</tr><tr>
<td>No. of Form Elements</td><td><%= countElements %></td>
</tr><tr>
<td>First Name</td><td><%= fnameInput %></td>
</tr><tr>
<td>Last Name</td><td><%= lnameInput %></td>
</tr>
</table><br><br>

<p style="padding-left:220;">
<%= fileName %> data received ...<br>
<%
' Checking to make sure if file was uploaded
If fileSize > 0 Then

' Connection string
Dim connStr
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
connStr = connStr & Server.MapPath("FileDB.mdb")

' Recordset object
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "Files", connStr, 2, 2

' Adding data
rs.AddNew
rs("File Name") = fileName
rs("File Size") = fileSize
rs("File Data").AppendChunk fileData
rs("Content Type") = contentType
rs("First Name") = fnameInput
rs("Last Name") = lnameInput
rs.Update

rs.Close
Set rs = Nothing

Response.Write "<font color=""green"">File was successfully uploaded..."
Response.Write "</font>"
Else
Response.Write "<font color=""brown"">No file was selected for uploading"
Response.Write "...</font>"
End If


If Err.number <> 0 Then
Response.Write "<br><font color=""red"">Something went wrong..."
Response.Write "</font>"
End If
%>
</p>
<br>
<table border="0" align="center">
<tr>
<form method="POST" enctype="multipart/form-data" action="Insert.asp">
<td>First Name :</td><td>
<input type="text" name="fname" size="40" ></td>
</tr>
<td>Last Name :</td><td>
<input type="text" name="lname" size="40" ></td>
</tr>
<td>File :</td><td>
<input type="file" name="file" size="40"></td>
</tr>
<td> </td><td>
<input type="submit" value="Submit"></td>
</tr>
</form>
</tr>
</table>
</body>
</html>


loader.asp --- the file used as a class file for uploading.
=======================================

<%
Class Loader
Private dict

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

Private Sub Class_Terminate
If IsObject(intDict) Then
intDict.RemoveAll
Set intDict = Nothing
End If
If IsObject(dict) Then
dict.RemoveAll
Set dict = Nothing
End If
End Sub

Public Property Get Count
Count = dict.Count
End Property

Public Sub Initialize
If Request.TotalBytes > 0 Then
Dim binData
binData = Request.BinaryRead(Request.TotalBytes)
getData binData
End If
End Sub

Public Function getFileData(name)
If dict.Exists(name) Then
getFileData = dict(name).Item("Value")
Else
getFileData = ""
End If
End Function

Public Function getValue(name)
Dim gv
If dict.Exists(name) Then
gv = CStr(dict(name).Item("Value"))

gv = Left(gv,Len(gv)-2)
getValue = gv
Else
getValue = ""
End If
End Function

Public Function saveToFile(name, path)
If dict.Exists(name) Then
Dim temp
temp = dict(name).Item("Value")
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Dim file
Set file = fso.CreateTextFile(path)
For tPoint = 1 to LenB(temp)
file.Write Chr(AscB(MidB(temp,tPoint,1)))
Next
file.Close
saveToFile = True
Else
saveToFile = False
End If
End Function

Public Function getFileName(name)
If dict.Exists(name) Then
Dim temp, tempPos
temp = dict(name).Item("FileName")
tempPos = 1 + InStrRev(temp, "\")
getFileName = Mid(temp, tempPos)
Else
getFileName = ""
End If
End Function

Public Function getFilePath(name)
If dict.Exists(name) Then
Dim temp, tempPos
temp = dict(name).Item("FileName")
tempPos = InStrRev(temp, "\")
getFilePath = Mid(temp, 1, tempPos)
Else
getFilePath = ""
End If
End Function

Public Function getFilePathComplete(name)
If dict.Exists(name) Then
getFilePathComplete = dict(name).Item("FileName")
Else
getFilePathComplete = ""
End If
End Function

Public Function getFileSize(name)
If dict.Exists(name) Then
getFileSize = LenB(dict(name).Item("Value"))
Else
getFileSize = 0
End If
End Function

Public Function getFileSizeTranslated(name)
If dict.Exists(name) Then
temp = LenB(dict(name).Item("Value"))
If temp <= 1024 Then
getFileSizeTranslated = temp & " bytes"
Else
temp = FormatNumber((temp / 1024), 2)
getFileSizeTranslated = temp & " kilobytes"
End If
Else
getFileSizeTranslated = ""
End If
End Function

Public Function getContentType(name)
If dict.Exists(name) Then
getContentType = dict(name).Item("ContentType")
Else
getContentType = ""
End If
End Function

Private Sub getData(rawData)
Dim separator
separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)

Dim lenSeparator
lenSeparator = LenB(separator)

Dim currentPos
currentPos = 1
Dim inStrByte
inStrByte = 1
Dim value, mValue
Dim tempValue
tempValue = ""

While inStrByte > 0
inStrByte = InStrB(currentPos, rawData, separator)
mValue = inStrByte - currentPos

If mValue > 1 Then
value = MidB(rawData, currentPos, mValue)

Dim begPos, endPos, midValue, nValue
Dim intDict
Set intDict = Server.CreateObject("Scripting.Dictionary")

begPos = 1 + InStrB(1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))
nValue = endPos

Dim nameN
nameN = MidB(value, begPos, endPos - begPos)

Dim nameValue, isValid
isValid = True

If InStrB(1, value, stringToByte("Content-Type")) > 1 Then

begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))

If endPos = 0 Then
endPos = begPos + 1
isValid = False
End If

midValue = MidB(value, begPos, endPos - begPos)
intDict.Add "FileName", trim(byteToString(midValue))

begPos = 14 + InStrB(endPos + 1, value, stringToByte("Content-Type:"))
endPos = InStrB(begPos, value, ChrB(13))

midValue = MidB(value, begPos, endPos - begPos)
intDict.Add "ContentType", trim(byteToString(midValue))

begPos = endPos + 4
endPos = LenB(value)

nameValue = MidB(value, begPos, ((endPos - begPos) - 1))
Else
nameValue = trim(byteToString(MidB(value, nValue + 5)))
End If

If isValid = True Then

intDict.Add "Value", nameValue
intDict.Add "Name", nameN

dict.Add byteToString(nameN), intDict
End If
End If

currentPos = lenSeparator + inStrByte
Wend
End Sub

End Class

Private Function stringToByte(toConv)
Dim tempChar
For i = 1 to Len(toConv)
tempChar = Mid(toConv, i, 1)
stringToByte = stringToByte & chrB(AscB(tempChar))
Next
End Function

Private Function byteToString(toConv)
For i = 1 to LenB(toConv)
byteToString = byteToString & Chr(AscB(MidB(toConv,i,1)))
Next
End Function
%>


file.asp --- used for getting the info out of the database. (i think)
=============================================
<%
Response.Buffer = True

' ID of the file to retrieve
Dim ID
ID = Request("ID")

If Len(ID) < 1 Then
ID = 7
End If

' Connection String
Dim connStr
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("FileDB.mdb")

' Recordset Object
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

' opening connection
rs.Open "select [File Data],[Content Type] from Files where ID = " & _
ID, connStr, 2, 4

If Not rs.EOF Then
Response.ContentType = rs("Content Type")
Response.BinaryWrite rs("File Data")
rs("DownloadCount") = rs("DownloadCount") +0

End If


rs.Close
Set rs = Nothing
%>


show.asp --- used to show the files, my download page.
=========================================

<%
Response.Buffer = True

' Connection String
Dim connStr
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("FileDB.mdb")
%>
<html>
<head>
<title>FilesDomain.net - Download</title>
<style>
body, input, td { font-family:verdana,arial; font-size:10pt; }
</style>
</head>
<body>
<p align="center">
<b>Showing Binary Data from the Database</b><br>
<a href="insert.htm">To insert data click here</a>
</p>

<table width="700" border="1" align="center">
<%
' Recordset Object
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

' opening connection
rs.Open "select [ID],[File Name],[File Size],[Content Type]," & _
"[First Name],[Last Name],[DownloadCount] from Files " & _
"order by [ID] desc", connStr, 3, 4

If Not rs.EOF Then
Response.Write "<tr><td>ID</td><td>File Name</td><td>File Size</td><td>File Type"
Response.Write "</td><td colspan=""2"" align=""center"">Author</td><td>Download Count"
Response.Write "</td></tr>"

While Not rs.EOF
Response.Write "<tr><td>"
Response.Write rs("ID") & "</td><td>"
Response.Write "<a href=""file.asp?ID=" & rs("ID") & """>"
Response.Write rs("File Name") & "</a></td><td>"
Response.Write rs("File Size") & "</td><td>"
Response.Write rs("Content Type") & "</td><td>"
Response.Write rs("First Name") & "</td><td>"
Response.Write rs("Last Name") & "</td><td>"
Response.Write rs("DownloadCount")
Response.Write "</td></tr>"
rs.MoveNext
Wend
Else
Response.Write "No Record Found"
End If
Response.Write "Total number of files: " & rs.RecordCount
rs.Close
Set rs = Nothing
%>
</table>
</body>
</html>

=============================================
with show.asp : "Response.Write "Total number of files: " & rs.RecordCount" was in the code i got from doing the tutorial. I just moved it and now it doenst work. I put <% %> around it so it will be used as ASP but it comes up with this error:

Microsoft VBScript runtime error '800a01a8'

Object required

/upload/show.asp, line 59

============================================

The DownloadCount stuff still doesnt work, the table cell it is in shows no numbers or anything. can someone find out where i went wrong, i didnt want to have to put all my files up but everyones help wasnt working, so please if u have time to read over the places where i have rs (downloadcount) stuff and the error above please help. Thanks.
__________________
http://www.streamsearch.ca - Live stream search engine. Find radio stations to listen to and TV channels to watch!

http://www.machonemedia.ca - Mach One Media web development and media services.

Last edited by Arctic; 08-28-03 at 11:36 AM.
Reply With Quote
  #23 (permalink)  
Old 08-26-03, 04:37 PM
Shane Shane is offline
Coding Addict
 
Join Date: Jun 2003
Location: Maryland, US
Posts: 268
Thanks: 0
Thanked 0 Times in 0 Posts
Well, for one, you can't use Response.Write(rs.RecordCount) when you set RS = nothing two lines before that. So print that before you set it to nothing.
__________________
Shane Bauer
Microsoft Certified Professional (MCP) - ASP.NET
ASP/ASP.net, C#, VB/VB.NET, PHP, Perl, SQL
Reply With Quote
  #24 (permalink)  
Old 08-26-03, 04:41 PM
Arctic Arctic is offline
Wannabe Coder
 
Join Date: Jul 2003
Location: BC, Canada
Posts: 120
Thanks: 0
Thanked 1 Time in 1 Post
ya that makes sence. thanks. also i tested a download and it keeps downloading my file.asp page not the file i clicked on. I dont understand.
__________________
http://www.streamsearch.ca - Live stream search engine. Find radio stations to listen to and TV channels to watch!

http://www.machonemedia.ca - Mach One Media web development and media services.
Reply With Quote
  #25 (permalink)  
Old 08-27-03, 07:03 PM
Arctic Arctic is offline
Wannabe Coder
 
Join Date: Jul 2003
Location: BC, Canada
Posts: 120
Thanks: 0
Thanked 1 Time in 1 Post
Ummm, is anyone going to help me out?????
__________________
http://www.streamsearch.ca - Live stream search engine. Find radio stations to listen to and TV channels to watch!

http://www.machonemedia.ca - Mach One Media web development and media services.
Reply With Quote
  #26 (permalink)  
Old 08-28-03, 09:20 AM
Shane Shane is offline
Coding Addict
 
Join Date: Jun 2003
Location: Maryland, US
Posts: 268
Thanks: 0
Thanked 0 Times in 0 Posts
Are you storing the actual file in the DB or on the file system somewhere?
__________________
Shane Bauer
Microsoft Certified Professional (MCP) - ASP.NET
ASP/ASP.net, C#, VB/VB.NET, PHP, Perl, SQL
Reply With Quote
  #27 (permalink)  
Old 08-28-03, 11:34 AM
Arctic Arctic is offline
Wannabe Coder
 
Join Date: Jul 2003
Location: BC, Canada
Posts: 120
Thanks: 0
Thanked 1 Time in 1 Post
In the Database
__________________
http://www.streamsearch.ca - Live stream search engine. Find radio stations to listen to and TV channels to watch!

http://www.machonemedia.ca - Mach One Media web development and media services.
Reply With Quote
  #28 (permalink)  
Old 08-28-03, 11:44 AM
Shane Shane is offline
Coding Addict
 
Join Date: Jun 2003
Location: Maryland, US
Posts: 268
Thanks: 0
Thanked 0 Times in 0 Posts
ok, well that should make it interesting. Give me a little bit of time.
__________________
Shane Bauer
Microsoft Certified Professional (MCP) - ASP.NET
ASP/ASP.net, C#, VB/VB.NET, PHP, Perl, SQL
Reply With Quote
  #29 (permalink)  
Old 08-29-03, 12:04 AM
Arctic Arctic is offline
Wannabe Coder
 
Join Date: Jul 2003
Location: BC, Canada
Posts: 120
Thanks: 0
Thanked 1 Time in 1 Post
ok thanks so much
__________________
http://www.streamsearch.ca - Live stream search engine. Find radio stations to listen to and TV channels to watch!

http://www.machonemedia.ca - Mach One Media web development and media services.
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
New Web Host, New Problem! justchat PHP 2 09-29-03 02:39 PM
Script to change file extensions JavaHead Script Requests 2 09-13-03 09:44 AM
Writes to a text file gamextremer2003 JavaScript 4 09-11-03 09:43 AM
File Management Script PunisherX PHP 0 08-26-03 08:56 AM
Upload file type and size limiter! Arctic ASP 1 08-02-03 07:06 PM


All times are GMT -5. The time now is 03:17 PM.
vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.