想做一个文件下载管理系统 想问下具体思路,是不是可以管理时每次上传都添加文件名到表中进行统计,这是我的一点点想法,本人新手,希望大家给点菜鸟的思路,不要框架的,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以新建个file表来管理文件里面有ID:自动编号文件编号,文件名称,上传时间,上传用户等。。上传的时候我一般是将每个上传的文件命名成ID,并且要在file表上加上“文件扩展名”这个字段这样就能保证文件上传的时候不会重复。并且有个特定的目录来存放文件,比如www根目录中创建个file文件夹来存放所有上传的文件如果要列出所有文件的话SELECT * FROM fileID 编号 名称 下载1 001 这是上载文件 下载文件点击下载的时候你只需要获得这个记录的ID和扩展名就能取得文件。假设这个文件的扩展名是.jpg那么这个文件的位置就在/file/1.jpg。 js可以实现。或者找个js插件。 你是不知道验证还是不知道下载?验证密码的话你只要在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); } } 大家帮我看一下这个php写mysql是那里出了问题? 怎么实现这种效果 咨询个PHP查询MYSQL数据库语句 mysql类型 varchar() 与 text 有什么区别? 5千元请人写"个性定制"网站功能,最好能与asp结合.. 本地PHP配置,我被网上的资料搞得一头雾水,谁来帮我一下! cgi问题 PHP环境下配置在线编辑器FCKeditor 编码的怪事 mysql如何产生序列号?(一个产生一个卡号和密码的功能) 几个静态页面的问题 这个php文件和图片我放在同一目录在,还提示没有这个文件,郁闷啊。
里面有
ID:自动编号
文件编号,文件名称,上传时间,上传用户等。。
上传的时候我一般是将每个上传的文件命名成ID,并且要在file表上加上“文件扩展名”这个字段
这样就能保证文件上传的时候不会重复。
并且有个特定的目录来存放文件,比如www根目录中创建个file文件夹来存放所有上传的文件
如果要列出所有文件的话
SELECT * FROM file
ID 编号 名称 下载
1 001 这是上载文件 下载文件
点击下载的时候你只需要获得这个记录的ID和扩展名就能取得文件。
假设这个文件的扩展名是.jpg那么这个文件的位置就在/file/1.jpg。
验证密码的话你只要在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);
}
}