当点击按钮后,浏览器会弹出下载提示框,当我点击对话框的返回按钮时,此程序仍然会执行数据库的操作,仍然会进行加1,可是我要的不是这种效果,只有当点击对话框的下载按钮时才会去让它执行数据库的download_times字段进行加1,请问怎么实现啊??请求高手帮忙,小声谢过了,最好附上点代码,直接回复也可以。
$file = fopen($file_dir . $file_name,"r"); // 打开文件 
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
if(isset($_GET["package_id"]))
{
include './db_ma.php';
/*调用db_ma.php里的函数用于更改下载的次数,当package_Id不为空时表示
此链接来自在售的应用需要记录下载次数,否则说明链接来自待审核的应用,不需要
记录下载次数.*/
update_downtimes($_GET["package_id"]);
}

解决方案 »

  1.   

    <?php 
    if (fread($file,filesize($file_dir . $file_name))===false){
        echo "下载失败";
    }else{
        echo "下载成功";//这里可以调用统计下载次数的函数
    }?>
      

  2.   

    怎么还不行啊??
    代码:$file = fopen($file_dir . $file_name,"r"); // 打开文件 
    // 输入文件标签
    Header("Content-type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Accept-Length: ".filesize($file_dir . $file_name));
    Header("Content-Disposition: attachment; filename=" . $file_name);
    // 输出文件内容
    //echo fread($file,filesize($file_dir . $file_name));

    if (fread($file,filesize($file_dir . $file_name))===false)
    {
    echo "下载失败!";
    exit();
    }else
    {
    if(isset($_GET["package_id"]))
    {
    include './db_ma.php';
    /*调用db_ma.php里的函数用于更改下载的次数,当package_Id不为空时表示
    此链接来自在售的应用需要记录下载次数,否则说明链接来自待审核的应用,不需要
    记录下载次数.*/
    update_downtimes($_GET["package_id"]);
    }
    }
    }
    fclose($file);
      

  3.   

    想问下
    $_GET["package_id"]是啥 
    点击对话框的下载按钮怎么让php知道?
      

  4.   

    $_GET["package_id"]是我通过URI传的参数,此package_id就是要下载的文件的id号,要通过这个id号更新数据库的下载次数的字段让他加1,就是当点击了下载按钮时,浏览器会有一个提示框,这个对话框中有要下载文件的名称什么的还有三个按钮:分别是 下载、取消,打开,按常规来说当点击对话框中的那个下载时才会让数据库的字段进行更新,可是我无论点击下载还是取消数据库都会加1的···这个问题已经困扰我好几天了···实在是解决不了了,请求高手帮忙?????????
      

  5.   

    根据package_id  在数据库中找下载数量的字段    当事件触发是让他执行sql语句 用update...set  更新数量字段
      

  6.   

    不是很懂 再问下
    你的$_GET["package_id"]是在你点击下载按钮之后传的值吗?
    如果只在你点击对话框的下载按钮之后才向服务器传$_GET["package_id"]的话,想请教这个怎么传的啊?对话框按钮的值如何传到服务器?和页面上的按钮应该不一样的吧?
      

  7.   

    这位师兄你搞错了,呵呵 不是点击对话框中的下载才传的值,我初步猜测那个跟浏览器内核有关,是点击了web页面上的那个下载传的值,呵呵···我的QQ 361271090 你加我把 著名一下是同行就行了,咱们可以切磋一下·····这个问题我都弄了好几天了···
      

  8.   

    类似csdn 的下载搞法么????
      

  9.   

    是的 跟csdn的下载类似···· 有办法吗?这位兄长???很急啊 ·······
      

  10.   

    好的···我怎么告诉你啊??不防留下一个email或QQ什么的··我要是解决了可以联系你·····