php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊?

用php怎么上传文件到服务器,并用阿帕奇服务器记录文件名称(求完整代码)

define(UPLOAD_ROOT,'你的上传文件夹路径');

function fake_random_name($string,$key){
#伪代码 随便根据用户名和上传时间生成一个伪随机的文件名作为上传以后的用户名
#但解码的条件是可以根据文件名判断出文件所有者的用户名和上传时间
#需要从数据库取出用户的密匙 才能进行解密 密匙是用户名的前5个字符
#具体加密解密的代码实现 请参照PHP标准扩展库 Mcrypt扩展下的N种方法
return $fake_random_name;
}
if(!is_writbale(UPLOAD_ROOT)){
die('you need chown the dir for your uploading file,make it writable~');
}else{
move_uploaded_file($_FILES['POST过来的表单名']['tmp_name'];
/*
* 这个方法会自动调用is_upload_file()方法 检测是否是合法的http rfc1867协议上传的文件
* 当然了 你也可以限制是否是你需要的合法文件类型 $_FILE[$_POST[name]][type] 比如是否是pdf img文件 都可以
*/
$dbh = new mysqli('localhost','root','sa','your_db_name');#生成中可以include进来 DSN放到根目录以外去 保护连接文件

$sec_key = substr($_SESSION['loginname'],0,5);
#密匙

$file_name = fake_random_name($_FILES['POST过来的表单名']['tmp_name'],$sec_key);
#加密后的名字

$q_str = "insert into tb(owner,location)values($_SEESION['loginname'],UPLOAD_ROOT.DIRECTORYSLASH.$file_name))";/SQL

$dbh->query($q_str);

if($dbh->num_rows()==1) echo "上传成功,已经插入数据库文件细节(加密)";
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-23
第一步:通过$_FILES获取文件信息
第二步:指定新文件名称以及路径,并赋值给一个变量

第三步:通过move_uploaded_file上传文件
第四步:上传成功后,将数值存入数据库。追问

用php怎么上传文件到服务器,并用阿帕奇服务器记录文件名称(求完整代码)

追答

另外一个回复贴出了代码。没有用apache做文件名称的。

本回答被提问者和网友采纳