想做一个文件下载管理系统 想问下具体思路,是不是可以管理时每次上传都添加文件名到表中进行统计,这是我的一点点想法,本人新手,希望大家给点菜鸟的思路,不要框架的,谢谢 解决方案 » 免费领取超大流量手机卡,每月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将网络上的文件下载到PHP文件所在服务器上? 两个数组 对比 php连接远程mssql数据库 防止php脏读mysql的数据 求助,菜鸟的一个小小疑问 php类的问题,请高手指点 这种PHP语法是啥回事 喜悦国际村 php编程专栏 的QQ群 请问我用PHP为什么不能访问局域网中的SQL Server 安装phphome的问题! 几个静态页面的问题 这个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);
}
}