十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
?php
创新互联主要从事成都做网站、成都网站制作、成都外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务金沙,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
if ($_FILES["file"]["error"] 0)
{
echo "错误: " . $_FILES["file"]["error"] . "br /";
}
else
{
echo "存储位置: " . $_FILES["file"]["tmp_name"];
}
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " 文件已经存在. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]); //这句是把 上传在 tmp中的文件移动到你指定的地方
//"upload/" . $_FILES["file"]["name"]);也就是你想要把这个路径存到数据库中
// 可以用 getcwd()来获得当前文件夹的路径,全加进来的话,存入MYSQL要
//经过转特殊字符转换。否则像 \ 这样的字符会不见了。
echo "文件已经被存储到: " . "upload/" . $_FILES["file"]["name"];
$pt=getcwd(). "/upload/" . $_FILES["file"]["name"]; // 这里就是你设置传入数据库的路径
mysql_connect("localhost","root","root") or die ("不能连到MYSQL");
mysql_select_db("book") or die ("不能连到数据库"); //这里假设是在 book 里的d 表只有一
//项,实际情况你自己改SQL语句啊
$sql="insert into d values(
'$pt' );";
mysql_query($sql);
}
?
关键应该是把上传文件从默认的 windows/temp 中移动到你指定的文件夹中
// 获取文件名
$filename=$_FILES["fileToUpload"]["name"].'.'$_FILES["fileToUpload"]["tmp_name"]
$mysqli = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if (mysqli_connect_errno()){ //注意mysqli_connect_error()新特性
die('Unable to connect!'). mysqli_connect_error();
}
$sql = "SET NAMES ".$charName;
$mysqli-query($sql);
$sql=" insert into tbname (filenane) values ('".$filename."')";
$mysqli-query($sql); //插入新纪录
当你问到这个问题的时候,其实我是不想回答的
你应该是个小白,因为 “文件地址”这个其实就是一个URL,就是一个字符串。把“
文件地址上传到数据库”,其实就是把一个字符串插入到相应的表。如果你有基础,文件都上传了获取到路径了,就等插入数据库,根本不会来问这个问题。如果你没基础,那不是我在这里三言两语甚至长篇大论能教会你的。
我只能大概说一下思路:
1、首先,建表,数据库新建一个表来存放这个文件地址
2、链接这个数据库
3、把这个“文件地址”,插到数据库里面
完了!
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 "上传成功,已经插入数据库文件细节(加密)";
}
PHP code你看这个行不行不行去这里()
$a=File_Get_Contents('./a.txt');
$PDO=New PDO('mysql:host=localhost;dbname=数据库名','用户名','密码') Or Die('Can not open the database!');
//添加
//IF($PDO-Exec("INSERT INTO (name,content) values ('".$."','".$."')")) {
IF($PDO-Exec("INSERT INTO `{$Table}` SET 列='{$a}'")) {
Echo $PDO-lastInsertId();
}
把reg.php中的第6行$photo=$_POST['photo'];改成$photo=$_FILES['photo']['tmp_name'];就好了!
当文件上传时,该文件将保存在Web服务器上的临时目录中,这是WEB服务器默认的临时目录。如果在脚本执行完成之前不移动、复制或更改文件名称,该文件将被删除。
在PHP脚本中,需要处理的数据保存在超级全局数组$_FILES中。
$_FILES['formname']['tmp_name']:文件在WEB服务器中临时存储的位置
$_FILES['formname']['name']:用户系统中的原文件名称
$_FILES['formname']['size']:文件的字节大小
$_FILES['formname']['type']:文件的MIME类型,例如:text/plain或image/gif
$_FILES['formname']['error']:任何与文件上传相关的错误代码
注:formname就是input type="file" name="photo"的name值,在PHP脚本中你可以尝试用print_r($_FILES['formname']);显示相关数值!
你可以尝试用以下代码,完整的代码应该增加限制上传文件大小!!!
input.html文件:
html
body
form name="msgform" method="post" action="reg.php" enctype='multipart/form-data'
input type="file" name="photo"br
input type="submit" value="上传"
/form
/body
/html
reg.php文件:
?php
$conn=mysql_connect("localhost","user","password")
or die("不能连接数据库服务器:".mysql_error());
mysql_select_db("database",$conn) or die("不能选择数据库:".mysql_error());
//print_r($_FILES['photo']);//测试时使用
if($_FILES['photo']['error']0){
$name=$_FILES['photo']['name'];//直接用原文件名称存入数据库比较方便使用
$photo=$_FILES['photo']['tmp_name'];
$fp=fopen($photo,"r");
$data=addslashes(fread($fp,filesize('$photo')));
$sql="insert into tablename (name,photo) values('$name','$photo');
mysql_query($sql,$conn) or die("插入数据失败:".mysql_error());
mysql_close($conn);
echo "上传成功";
}else{
echo "上传出错";
}//From J.L
?