php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊 有高手吗?帮个忙吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (move_uploaded_file($file_name, $target_name)){ //成功了 其中$file_name 就是上传的$_FILES['tmp_name']临时文件名,,$target_name是你的目标路径 //保存数据库就保存$target_name} <form action="" method="post" enctype="multipart/form-data"><input type="file" name="img">……</form>图片接收页面if(is_uploaded_file($_FILES['img']['tmp_name'])){ //你可以加上,文件类型,大小等判断 if(move_uploaded_file($_FILES['img']['tmp_name'], '你的目标路径')) { //这就算上传成功了 } else { //上传失败了 }} 补全数据库操作:<?phpif(is_uploaded_file($_FILES['img']['tmp_name'])){ if(move_uploaded_file($_FILES['img']['tmp_name'], $target_name)){ //这就算上传成功了,插入数据库 if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { echo 'Could not connect to mysql'; exit; } if (!mysql_select_db('mysql_dbname', $link)) { echo 'Could not select database'; exit; } $sql = 'insert into table_name(id, img_path) values(img_id, $target_name)'; $result = mysql_query($sql, $link); if (!$result) { echo "DB Error, could not create table the database\n"; echo 'MySQL Error: ' . mysql_error(); exit; } mysql_free_result($result); } else{ echo "上传失败"; }}?> 我也来个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 "上传成功,已经插入数据库文件细节(加密)";} 设置好文件保存的路径,把上次的文件通过move_uploaded_file这个函数上传,再命名上传的文件名插入到数据库 php 页面不同部分如何并行加载? 查询问题 100分求解转义问题 mkdir()能否建立多层目录? FCKeditor 在線編輯器裏怎麼添加鏈接 请教POST以后,在HTTP协议中传输的数据是什么? 那个高手 能看懂这个程序段? php调试出错 小问题一个 linux环境下PHP加载pcntl 模块失败 mysql中的中文是乱码,但在PHP中echo显示却是正常的中文。 如何在linux控制台运行php程序,就像运行shell脚本一样
{
//成功了 其中$file_name 就是上传的$_FILES['tmp_name']临时文件名,,$target_name是你的目标路径
//保存数据库就保存$target_name
}
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="img">
……
</form>
图片接收页面if(is_uploaded_file($_FILES['img']['tmp_name']))
{
//你可以加上,文件类型,大小等判断
if(move_uploaded_file($_FILES['img']['tmp_name'], '你的目标路径'))
{
//这就算上传成功了
}
else
{
//上传失败了
}
}
<?php
if(is_uploaded_file($_FILES['img']['tmp_name'])){
if(move_uploaded_file($_FILES['img']['tmp_name'], $target_name)){
//这就算上传成功了,插入数据库
if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
} if (!mysql_select_db('mysql_dbname', $link)) {
echo 'Could not select database';
exit;
} $sql = 'insert into table_name(id, img_path) values(img_id, $target_name)';
$result = mysql_query($sql, $link); if (!$result) {
echo "DB Error, could not create table the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
} mysql_free_result($result);
}
else{
echo "上传失败";
}
}
?>
#伪代码 随便根据用户名和上传时间生成一个伪随机的文件名作为上传以后的用户名
#但解码的条件是可以根据文件名判断出文件所有者的用户名和上传时间
#需要从数据库取出用户的密匙 才能进行解密 密匙是用户名的前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 "上传成功,已经插入数据库文件细节(加密)";
}