想问下具体思路,是不是可以管理时每次上传都添加文件名到表中进行统计,这是我的一点点想法,本人新手,希望大家给点菜鸟的思路,不要框架的,谢谢

解决方案 »

  1.   

    你可以新建个file表来管理文件
    里面有
    ID:自动编号
    文件编号,文件名称,上传时间,上传用户等。。
    上传的时候我一般是将每个上传的文件命名成ID,并且要在file表上加上“文件扩展名”这个字段
    这样就能保证文件上传的时候不会重复。
    并且有个特定的目录来存放文件,比如www根目录中创建个file文件夹来存放所有上传的文件
    如果要列出所有文件的话
    SELECT * FROM file
    ID 编号 名称               下载
    1  001  这是上载文件      下载文件
    点击下载的时候你只需要获得这个记录的ID和扩展名就能取得文件。
    假设这个文件的扩展名是.jpg那么这个文件的位置就在/file/1.jpg。
      

  2.   

    js可以实现。或者找个js插件。
      

  3.   

    你是不知道验证还是不知道下载?
    验证密码的话你只要在file表中添加个字段password就可以了。下载的时候用ajax或者不用也可以,
    假设要下载的人输入好密码后,由于他要下载的file ID和他输入的密码已经知道,所以你只需要在file表中找到这个ID并核对传过来的密码就可以了。正确的话就下载,错误的话提示错误。
    下载的话我有个下载类,兼容IE和火狐
    class download
    {
    var $file_name,$file_path,$file_size;
    function __construct($file_path,$file_name,$file_size,$down_name='')
    {
    $this->file_path=$file_path;
    $this->file_name=$file_name;
    $this->file_size=$file_size;
    $file=$this->file_path.$this->file_name;
    if(is_file($file))
    {
    $fp=fopen($file,r);
    }
    else
    {
    return 0;
    }
    if($down_name=='')
    {
    $down_name=$file_name;
    }
    $encoded_filename = urlencode($down_name);   
    $encoded_filename = str_replace("+", "%20", $encoded_filename);   
    $ua = $_SERVER["HTTP_USER_AGENT"];   
    header( "Content-Type:application/octet-stream");
    header("Accept-ranges:bytes");
    header( "Content-Length:".$file_size);
    header('Content-Type: application/octet-stream');   
    if (preg_match("/MSIE/", $ua)) 
    {   
    header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');   

    else if (preg_match("/Firefox/", $ua)) 
    {   
    header('Content-Disposition: attachment; filename*="utf8\'\'' . $down_name . '"');   

    else 
    {   
    header('Content-Disposition: attachment; filename="' . $down_name . '"');   
    }   

    echo fread($fp,$file_size);
    fclose($fp);
    }
    }