Profiel van WuScottWorldFoto'sWeblogLijstenMeer Extra Help

Weblog


    06 december

    [原创]创建指向本地文件的链接

    昨天遇到的一个问题: 如何在web页中创建一个指向本地文件的链接
    虽然这样的需求不会很常见,但其解决方案也许值得参考。
     
    比如有一个文件C:\a.txt 需要创建一个超链接指向他,通常在IE中输入file:///C:/a.txt 既可打开此文件。但直接将这样的URL做成链接却不能达到期望的效果:虽然IE左下角能正确显示URL,甚至能右键另存为,但就是无法单击打开。与其说这是一个Bug,不如说是为了安全性上的考虑(比如指向某个可执行文件)。
     
    尝试过多种格式的URL,但实际上均被IE解析成相同的形式,并且同样无效。
     
    转换思路,使用javascript,但十有八九会被IE屏蔽。
     
    再次转换思路,想到利用默认共享。 使用 \\机器名\\C$\a.txt 没有问题,但毕竟不是普遍的解决方案。再把机器名换成127.0.0.1,同样有效,很好很强大。
     
    结论:使用\\127.0.0.1\C$\a.txt 这样的URL即可指向本地的C:\a.txt
     
    在2003+IE7下测试通过,然而到了Vista+IE7下却报找不到文件。
    研究了很久终于发现是因为Vista下IE7的保护模式造成的,以至于在大多数情况下IE的默认权限不足以打开本地文件。
    解决方案很有意思:将127.0.0.1加入到IE的信任站点列表即可(默认情况下,IE对信任站点不使用保护模式)
     
    (本方案适用于IIS,apache之类似乎有其他的解决办法)
     
    29 april

    ASP.net 2.0 下的webservice异步调用方案

    //Client Code:
    //the Unique Identity of UserState
    string state1 = "A";
    string state2 = "B";
    string state3 = "C";
    string state4 = "D";

    public Demo()//Init
    {
    InitializeComponent();
    demoService = new ASynchronousDemo.DemoWS.DemoService();
    demoService.ProblemOneCompleted += new ASynchronousDemo.DemoWS.ProblemOneCompletedEventHandler(demoService_ProblemOneCompleted);
    demoService.ProblemTwoCompleted += new ASynchronousDemo.DemoWS.ProblemTwoCompletedEventHandler(demoService_ProblemTwoCompleted);
    demoService.ProblemThreeCompleted += new ASynchronousDemo.DemoWS.ProblemThreeCompletedEventHandler(demoService_ProblemThreeCompleted);
    demoService.ProblemFourCompleted += new ASynchronousDemo.DemoWS.ProblemFourCompletedEventHandler(demoService_ProblemFourCompleted);
    }
     
    private void buttonTestAs_Click(object sender, EventArgs e)
    {          
    //Work 1 start
    demoService.ProblemOneAsync(state1);
    //Work 2 start
    demoService.ProblemTwoAsync(state2);
    //Work 3 start
    demoService.ProblemThreeAsync(state3);
    //Work 4 start
    demoService.ProblemFourAsync(state4);         
    }
     
    //call back functions:
    void demoService_ProblemFourCompleted(object sender, ASynchronousDemo.DemoWS.ProblemFourCompletedEventArgs e)
    {
    richTextBoxResult.Text += e.Result + "\n";
    }
    void demoService_ProblemThreeCompleted(object sender, ASynchronousDemo.DemoWS.ProblemThreeCompletedEventArgs e)
    {
    richTextBoxResult.Text += e.Result + "\n";
    }
    void demoService_ProblemTwoCompleted(object sender, ASynchronousDemo.DemoWS.ProblemTwoCompletedEventArgs e)
    {
    richTextBoxResult.Text += e.Result + "\n";
    }
    void demoService_ProblemOneCompleted(object sender, ASynchronousDemo.DemoWS.ProblemOneCompletedEventArgs e)
    {
    richTextBoxResult.Text += e.Result + "\n";
    }
    27 februari

    Scott的假期&comicII成长日志

    2月3日
    完善了add_to_favorite函数(相应的view还未完成)
    修正了article的created列的bug

    2月4日
    继续favorite的进展,完成了view部分(还缺删除)
    修正了2月3日add_to_favotite函数的bug

    2月5日
    添加了favorite的controller,实现删除功能,并将add_to_favorite的实现移交给favorite处理
    修正了2月4日favorite view部分的bug

    2月6日
    修正Search的bug
    修正favorite和hot显示的问题
    完成了hotmovie
    完成了star的view及修正其bug
    [重要]实现了tag

    2月7日
    完善了tag的view(还缺tag实用化,按tag查找)
    修正了movie/edit和movie/add的图象处理bug
    修正了movie/delete的bug

    2月8日
    添加了tag重复判断功能
    [重要]实现上传功能
    删除时一起删除Tag
    重写图片上传方式
    增加modify页
    改进了Tag编辑页

    2月9日-2月11日
    修正了图片上传的bug
    完善了文件上传系统
    [重要]实现并完善了添加下载地址页面
    实现了文件下载功能

    2月12日
    完善了movies/view的Tag显示
    index增加按点击率、评分排序功能
    [重要]index实现按类别浏览
    将排序和Tag整合起来
    改进了tag的类别管理,统一用relation表来进行类别识别

    2月13日-2月14日
    对统一的添加Tag关系界面进行扩展
    改进在删除时将有关Tag关系一起删除的处理
    修正删除Tag时的bug
    [重要]实现Tag的Tag

    2月15日
    实现movies/index导航栏
    实现movies/view导航栏
    添加返回按钮(有待css处理)
    添加父目录列表,方便类别浏览(显示有待改进)

    2月16日
    [重要]完善与framework的连接,完善登入登出
    [重要]完善账户权限控制
    各controller功能精简
    添加部分注释
    修正用户验证n多bug
    显示nickname
    增强权限控制

    2月17日
    增加movie发布者信息
    修正一些安全漏洞
    修正增加电影的Bug
    完善了UserPannel

    2月18-19日
    加入一些页面链接
    修正一些bug
    改进了最高类别的识别方式
    举报坏链功能
    owner修复坏链
    完善用户体验

    2月20日
    用cookie替代session保存framework所用的key
    继续改进用户体验&修正bug
    为各页添加当前位置
    完善添加评论页
    完善我的主页
    部署到服务器http://202.120.61.8:18080
    修正js定位和img显示的问题

    2月21日
    album开始动工
    复制movie的内容至album

    2月22日
    album/index
    album/search
    album/add
    album/edit
    album/modify
    album/del
    修正view中的bug
    为其他controller添加对album的支持

    2月23日
    修正一些bug
    通用模块通用性加强
    album中加入song
    song/add

    2月24日
    修正一些bug
    改进一次写入多个数据(使用create()函数)
    增加默认资源设定

    2月25日
    [重要]实现默认资源的添加\设置
    song的各种页面
    添加song时的默认tag
    bug修正

    2月26日
    song导航完善
    改进album/song用户体验
    改进我的主页
    修正一些bug
    删除时的扫垃圾工作
    电影默认资源
    资源名称

    2月27日
    完善album主页
    song/view导航完善

    07 februari

    cakephp MVC架构执行流程,与asp.net2.0的对比

    cakephp MVC架构:
    1、通过浏览器访问形如/controllername/action/param1/param2的地址执行controllername_controller.php中的action($param1,$param2)函数。
    2、controller使用相应的model进行数据库操作(注意:cake\app_controller.php中如果写了use,则新的model必须在其中注册)
    3、该action对应的view显示出来 

    asp.net 2.0 事件驱动模型:
    1、控件触发事件,返回给服务器端。
    2、服务器端进行处理,修改控件的呈现方式及进行必要的数据库操作。(相当于Controller层,在此可以自定义View层的表现,甚至动态生成控件)
    (其中大部分数据库操作将自动执行,相当于自动生成的model层。如需自定义,可以添加BLL层。)
    3、由数据源控件自动提供数据给相应的显示控件,页面刷新。(即View层大部分可由控件构建)

    31 januari

    vista真的安全吗?

    突然想到偶的QQ尾巴会不会在vista下遇到兼容性问题,毕竟又是DLL注入又是钩子什么的~
    copy过去一运行,弹出个警告框:“应用程序中发生了无法处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。如果单击“退出”,应用程序将立即关闭。(尝试读取或写入受保护的内存,这通常指示其它内存已损坏)”
    没细看,以为是被vista拦截了,很高兴地大赞其安全性的长进。
    点了继续,钩子功能完好,也没怎么在意。
    用了一会儿突然发现停止按钮没有出现,又重新运行了一遍,看警告框的详细信息,发现问题出在GetWindowText这个api上(位于Start按钮的OnClick事件处理函数中,而停止按钮的显示也为于该函数中)。也就是说,vista阻止了GetWindowText这中不痛不痒的东西,反而潜在危险性较大的DLL注入倒是不闻不问了。。。
    自从用了vista,n多操作都要管理员验证一下,难道都是防君子不防小人么-_-,莫非90%的病毒都能运行的传言是真的?
    20 januari

    关于QQ聊天次序问题的临时解决方案

    (诸如 1 =〉3 =〉2的问题又发生了)
    Windy:额。。。次序啊
    Scott:次序-_-
    Windy:我这边要晕了。。发啥都是没发送成功
    Scott:哈哈,很简单~
    Scott:00 我们都是写代码的,为什么会没想到呢~
    Scott:01 这样有漏掉也可以发现
    Scott:02 :D
    Scott:03 哈哈哈哈,太有意思了~
    Windy:0卡了顺便汗一下
    Windy:1继续无语;。。。还是发送没成功
     
    …………………………我是省略号…………………………
     
    Scott:29 ^_^
    Windy:19。慢点,断了4条,刚才偶掉了
    Windy:20。你24到27发啥了
    Scott:
    (此处省略24-27)
    Scott:31 真好玩,这样还可以随时错误恢复~

     
    09 december

    典型流氓软件识别与杀灭教程

    ie7中文正式版终于发布了,拿来安装一下。windowsupdate太慢,google出某个小站有下载点。

    很顺利地装好了,开始到处玩新功能。突然发现ie首页变成了www.ggddmm.com (-_- 某些无良小站阿)

    随即把ie首页改回来,玩了一会儿,发现www.ggddmm.com 又跑出来了……厄。。。显然是ie7安装源被捆绑上流氓软件了(-_-不仅无良,下手还真够狠的)

    懒惯了,拿出360安全卫士,杀了一下……啥?没发现流氓软件?看来还是刚出道的,没上黑名单。BHO列表里一看,一个叫IEInfo的差点被我漏过去,不管怎么说,所有不可疑的东东里最可疑的就是它了。(大家注意,XXInfo这种名字都是很可疑的)对应文件是System32下面的win32info.dll。一看版本信息,公司和内部名称一栏为空,流氓软件中的次品。

    清了该BHO,恢复了ie首页,仍不解恨,尝试删除win32info.dll,正在使用中,删除失败。(-_-哦,ie还开着)本来想用hijackthis在下次重启的时候删除的,但仍觉得直接灭杀之更为爽快。于是拿出传说中的icesword,查看进程中ie和explorer的模块信息,果然win32info.dll就窝在那里,卸载之,删之,世界清静了~

    02 december

    Campus Live Logo

    如果说这Logo要有什么意义的话,就是n个小球代表n个模块,马鞍面代表一张网,连在一起……
    又做了n个新效果
    25 november

    Campus Live第二期最新进展

    ftpsearch和comic整合中
    bbssearch测试中
    主用户数据库完成
    php和asp.net系统的连接已无技术障碍
    16 september

    时间格式(HH:mm)的正则表达式

    今天捣鼓了半天才搞定的,分享一下~
    (2[0-3]|[0-1]\d|\d):[0-5]\d
    10 augustus

    java大作业

    今天在讨论java大作业做什么东西
    一开始就是想做一个ftp的聚合器,和我那个spacetour差不多
    然后觉得应该加入资源搜索,流量指示等功能,有必要弄一个客户端(强制安装的流氓软件?-_-b)
    然后客户端的功能越想越强大,然后还可以提供数据给服务器端让它进行流量分配……
    后来想到既然客户端都这么强大了,为啥还要用ftp呢,干脆直接传吧……
    …………………………………………
    …………………………………………
    …………………………………………
    …………………………………………
    …………………………………………
    于是,BT诞生了……
    19 juli

    最终效果~

    这风格……感觉像msn里套着个苹果……
     

    莫名其妙的问题,莫名其妙的解决办法。。。

    按回车却死活不能响应事件,google了一下午,终于在一个偏僻小站找到一则民间偏方:“在登录窗口有一个HTML服务器控件的密码输入框,密码框按回车提交,Submit按钮无响应,经过查找发现,必须在页面中再加入一个或多个文本输入控件,button控件才能响应回车的click事件。”
     
    开玩笑么,这简直就是类似于“吃秃子的头发可以治感冒”之类的邪乎玩意么
    都折腾了一下午了,好歹也试试……厄……居然好了……晕……
    好吧,多放一个文本框,又不能让人看到。
    先尝试设置visible=false,厄……失效了……意料之中。
    好吧,height=0px width=0px borderwidth=0px backcolor=透明,不错,有效,而且看不见。厄,按tab好像会切换到上面去。试试看enabled=false……居然还是有效的……意料之外。
     
    不错,一个有趣的bug。
    15 juli

    CSS太赞了!

    表格布局这种东西可以扔掉了~
     
    *