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

PHP code
?

1
2
3
4
5
if  (move_uploaded_file( $file_name $target_name ))
{
   //成功了  其中$file_name 就是上传的$_FILES['tmp_name']临时文件名,,$target_name是你的目标路径
   //保存数据库就保存$target_name
}

XML/HTML code
?
1
2
3
4
< form  action = ""  method = "post"  enctype = "multipart/form-data" >
< input  type = "file"  name = "img" >
……
</ form >


图片接收页面
PHP code
?
1
2
3
4
5
6
7
8
9
10
11
12
if ( is_uploaded_file ( $_FILES [ 'img' ][ 'tmp_name' ]))
{
   //你可以加上,文件类型,大小等判断
   if (move_uploaded_file( $_FILES [ 'img' ][ 'tmp_name' ],  '你的目标路径' ))
   {
     //这就算上传成功了
   }
   else
   {
     //上传失败了
   }
}

补全数据库操作:

PHP code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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  "上传失败" ;
     }
}
?>

我也来个

PHP code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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  "上传成功,已经插入数据库文件细节(加密)" ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值