AspRain官方论坛 › asprain论坛使用讨论区 › 新功能测试 › 今天搞定了一个下载计数功能 
共10个回复  第1页 / 共2页  «12»
发帖
本版版主:稽山草
主题:今天搞定了一个下载计数功能收藏此帖  |引用到博客|只看楼主 你是本帖第1209个浏览者

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
1楼 发表于:2010-2-7 17:45:26 只看该作者 IP来源:*.*.*.*

今天搞定了一个下载计数功能

看看效果吧:
载计数每个下载文件,当鼠标挪到上面去的时候,会自动出现文件大小提示、下载次数提示的。
我甚至还可以设法让下载链接都自动变成迅雷专用链。
不知道这里的人们是否觉得有必要做出迅雷专用链呢?
因为之前一直没有加上下载计数功能,所以下载一直没有计数,所以现在所有的文件下载次数显示为零。
因为这个下载功能是要下载完成之后才计数的,所以如果你只点击了链接,但是放弃了下载的话,它是不计数的。而且呢,它还防盗链,可以在后台设置是否允许游客下载。
asdfasdfasdfasdfasdf
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
2楼 发表于:2010-2-7 17:50:39 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

关于asprain正式版和测试版的不同之处,我想历数几点。
一、测试版里“赠送礼物”功能还没有完成,正式版里有“赠送礼物”功能。
二、测试版里“引用通告”功能实际上前台不显示引用通告的。正式版里显示引用通告。
三、后台功能搜索测试版里是不能用的,但是正式版里能用了。
四、下载计数功能测试版里没有,正式版里才有
五、语法高亮功能,测试版里没有,正式版里有
另外,是否需要图片防盗链功能呢?啊,我可以让用户自己选择是否需要图片防盗链。
我将在2月17日把正式版放出来的。
本帖在2010-2-7 18:00:18被作者稽山草编辑了
asdfasdfasdfasdfasdf
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
3楼 发表于:2010-2-7 18:11:24 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

另有一个功能,我正在仔细琢磨,那就是在线截屏功能。类似于网易邮箱、QQ邮箱的在线截屏功能。
我很想把它做进正式版里,但是有点难度啊!!
我会尽把它做出来的。如果一时做不出来,我将来会以补丁的形式做到它的。
另外还有一个功能,就是上传avi、wmv格式的视频,在线转换成flv格式。这样的话,任何一个论坛都能变成一个播客了。
但是这个功能对服务器要求较高,要求有很大的硬盘容量、很宽的带宽、独立服务器或者vps虚拟服务器。我想很多建小论坛的都不具备这样的条件的。我将来会以插件的形式发布它的。让站长们选择是否要安装这个插件。
avi、wmv格式的视频,一般都是家用DV或者数码相机或者手机或者摄像头拍的视频,因此也不存在什么版权争纷。只要站长自己定义好上传最大体积就好了。一般自拍的视频都不会体积很大。
asdfasdfasdfasdfasdf
回复引用评分

GG,正在线~加为好友 shuhan

门派:

点此查看shuhan的个人资料
等级:初入江湖 (167)
金钱值:340人品值:9
赠送礼物发站内信
4楼 发表于:2010-2-7 19:07:20 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

我很好奇下载完了计数是利用什么原理完成的??
图片防盗链的功能还是要的吧,论坛做大了这部分流量也不小。
在线截屏应该要用ActiveX插件吧?
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
5楼 发表于:2010-2-8 9:34:17 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

啊,你只要看看这段代码就可以知道为什么它能够下载完了才计数的。
如果只下载了一半放弃下载同样也不计数的:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Option Explicit
Response.Buffer = false
response.charset = "gb2312"
%><!--#include file="inc/const.asp"-->
<!--#include file="inc/function.asp"-->
<!--#include file="inc/c_upload.asp"-->
<!--#include file="inc/cls_user.asp"-->
<%
if CheckMake=false then
response.write "对不起,请不要盗链本站资源" : response.end
elseif ALLOWGUESTDOWN=false then
dim user
set user=new cls_user
if user.islogin=false then 
response.write "对不起,你还没有登录,请先登录" : response.end
end if
set user=nothing
end if
on Error resume next
dim filepath,st
filepath=server.mappath("uploadfile/"&request.querystring("file"))
set st=server.createobject("adodb.stream")
st.open
st.Type = 1
st.LoadFromFile filepath
If Err Then
  err.Clear
set st=nothing
Response.Write "对不起,文件不存在或者已被删除"
Response.End
End If
dim ext,ctype
ext=right(filepath,3)
select case ext
case "zip"
ctype="application/x-zip-compressed"
case "doc"
ctype="application/msword"
case "xls"
ctype="application/vnd.ms-excel"
case "pdf"
ctype="application/pdf"
case "swf"
ctype="application/x-shockwave-flash"
case "avi"
ctype="video/avi"
case "mp3"
ctype="audio/mpeg"
case "chm"
ctype="application/octet-stream"
case else
ctype="application/octet-stream"
end select
response.contenttype=ctype
Response.BinaryWrite st.read
st.close
set st=nothing
Dim conn,connstr
ConnStr = costr
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
conn.execute "update [ar_uploadfile] set [hits]=[hits]+1 where filepath='"&filepath&"'",1,128
conn.close
set conn=nothing
%>
本帖在2010-2-8 9:39:25被作者稽山草编辑了
asdfasdfasdfasdfasdf
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
6楼 发表于:2010-2-8 9:36:07 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

另外,那个inc/function.asp里的有个过程要改一下:
Sub CheckMake()
 Dim Come,Here
 Come=Request.ServerVariables("HTTP_REFERER")
 Here=Request.ServerVariables("SERVER_NAME")
 If Mid(Come,8,len(Here))<>Here Then CheckMake=false else CheckMake=true
End Sub
应该改成
Function CheckMake()
 Dim Come,Here
 Come=Request.ServerVariables("HTTP_REFERER")
 Here=Request.ServerVariables("SERVER_NAME")
 If Mid(Come,8,len(Here))<>Here Then CheckMake=false else CheckMake=true
End Function
asdfasdfasdfasdfasdf
回复引用评分

GG,正在线~加为好友 shuhan

门派:

点此查看shuhan的个人资料
等级:初入江湖 (167)
金钱值:340人品值:9
赠送礼物发站内信
7楼 发表于:2010-2-8 9:40:45 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

明白了。用stream读取然后二进制输出。
但是我刚看了论坛的附近,没有通过ASP来读取啊,是直接给出文件真实地址的……
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
8楼 发表于:2010-2-8 9:45:43 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

如果要实现图片防盗链,只要写一个httpd.ini文件放在空间根目录下就好了(前提是服务器里安装了isapi_rewrite)
httpd.ini的内容是:
RepeatLimit 32
RewriteCond %{HTTP:Host}#%{HTTP:Referer} ^([^#]+)#(?!http://\1).+
RewriteCond Referer: ^(?!http://(.*\.(google|baidu|youdao|suoguo|sousou)\.(com|net|cn)).*).*$
RewriteRule ^uploadpic/([\d-]+/\d+)\.(png|gif|jpeg|jpg|bmp) /images/block.gif [NC]

那个/images/block.gif是被替换用来显示谢绝盗链信息的图片
另外,要实现下载计数,还得在 RepeatLimit 32后面加上一行:
RewriteRule ^(.*)/uploadfile/(.*?)\.(rar|doc|zip|xls|pdf|swf|avi|mp3|chm|txt|htm|html|exe|msi)\?*(.*)$ $1/uploadfile\.asp\?file=$2.$3
本帖在2010-2-8 9:49:26被作者稽山草编辑了
本帖在2010-2-8 9:50:12被作者稽山草编辑了
本帖在2010-2-8 9:53:04被作者稽山草编辑了
asdfasdfasdfasdfasdf
回复引用评分

MM,不在线~加为好友 稽山草

门派:无门无派

点此查看稽山草的个人资料
等级:论坛创始人 (2259)
金钱值:32165人品值:352
赠送礼物发站内信
9楼 发表于:2010-2-8 11:01:11 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

刚才我又修正了一个功能:添加好友。
之前我发现:当请求加为好友时,如果自己的用户名是中文用户名,则对方无法把自己添为好友。因为编码时会出现一些问题
asdfasdfasdfasdfasdf
回复引用评分

TT,正在线~加为好友 wlf921

门派:

点此查看wlf921的个人资料
等级:江湖少侠 (570)
金钱值:100人品值:4
赠送礼物发站内信
10楼 发表于:2010-2-9 14:27:38 只看该作者 IP来源:*.*.*.*

Re: 今天搞定了一个下载计数功能

,下载转为迅雷是不是迅雷已经提供了接口,直接调用啊
回复引用评分
共10个回复  第1页 / 共2页  «12»
发帖
快速回复

你还没有登录,不能发表回复。点此注册 / 登录