> 백엔드 개발 > PHP 튜토리얼 > php实现文件下传到指定文件夹,文件路径或名字存入数据库,怎么实现

php实现文件下传到指定文件夹,文件路径或名字存入数据库,怎么实现

WBOY
풀어 주다: 2016-06-13 13:09:24
원래의
803명이 탐색했습니다.

php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
有高手吗?帮个忙吧。

------解决方案--------------------

HTML code

로그인 후 복사
……

------解决方案--------------------
补全数据库操作:
PHP code
<?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 "上传失败";
    }
}
?>
<br><font color="#e78608">------解决方案--------------------</font><br>我也来个<br>
로그인 후 복사
PHP code

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 "上传成功,已经插入数据库文件细节(加密)";
}
<br><font color="#e78608">------解决方案--------------------</font><br>设置好文件保存的路径,把上次的文件通过move_uploaded_file这个函数上传,再命名上传的文件名插入到数据库
<br><font color="#e78608">------解决方案--------------------</font><br>学习并接分 <div class="clear">
                 
              
              
        
            </div>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿