php - 使用上传表单时如何在mysql表中保存完整文件路径

标签 php mysql codeigniter

如何在 mysql 表中保存完整的文件路径?

目前mysql存储的路径名如下

F:Xammphtdocsdrnirajvoraappointment/uploads/0stock-illustration-4507047-set-of-colored-planets.jpg

但是应该这样保存

F:Xammp/htdocs/drnirajvora/appointment/uploads/0stock-illustration-4507047-set-of-colored-planets.jpg

这是我保存文件的代码

        public function uploadfiles()
    {
        if(isset($_FILES['fileupload']))
        {
            $errors= array();
                        $connection = db::factory('mysql');
                        $user_id=$_SESSION['userid'];   
            foreach($_FILES['fileupload']['tmp_name'] as $key => $tmp_name )
                {
                $file_name = $key.$_FILES['fileupload']['name'][$key];
                $file_size =$_FILES['fileupload']['size'][$key];
                $file_tmp =$_FILES['fileupload']['tmp_name'][$key];
                $file_type=$_FILES['fileupload']['type'][$key]; 
                if($file_size > 2097152)
                        {
                        $errors[]='File size must be less than 2 MB';
                        }   
                $upload_dir = ROOT;
                $desired_dir=ROOT."/uploads/";
                if(empty($errors)==true)
                    {
                    if(is_dir(ROOT."/uploads/")==false)
                        {
                        mkdir(ROOT."/uploads/", 0700);      // Create directory if it does not exist
                        }
                    if(is_dir(ROOT."/uploads/".$file_name)==false)
                        {
                        $file_path=ROOT."/uploads/".$file_name;
                        move_uploaded_file($file_tmp,$file_path);
                        $query="INSERT into uploads (`User_Id`,`File_Name`,`File_Path`,`File_Size`,`File_Type`) VALUES('$user_id','$file_name','$file_path','$file_size','$file_type'); ";
                        mysql_query($query);
                        }
                        else
                        {                                   // rename the file if another one exist
                        $new_path=ROOT."/uploads/".$file_name.time();
                        rename($file_tmp,$new_path) ;
                        $file_path=$new_path;   
                        $query="INSERT into uploads (`User_Id`,`File_Name`,`File_Path`,`File_Size`,`File_Type`) VALUES('$user_id','$file_name','$file_path','$file_size','$file_type'); ";
                        mysql_query($query);


                }
                else
                {
                print_r($errors);
                }
        }
        if(empty($error))
        {
        //echo "Success"; exit;
        return true;
        }
        return false;
}
    }

最佳答案

mysql_query 在最新的 PHP 中已被弃用,而且它也不太安全。我强烈建议切换到 Mysqli 或 PDO。

要回答您的问题,请在将变量插入数据库之前尝试对变量使用 mysql_real_escape_string() 。它将转义特殊字符。

关于php - 使用上传表单时如何在mysql表中保存完整文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884127/

相关文章:

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'name' cannot be null

php - 从 phpmyadmin(好)和 PHP 脚本(坏)执行 sql 查询的结果不同

mysql - 在查询期间设置变量

MySQL 正则表达式匹配行中包含两个或多个空格的行

mysql - mysql查询codeigniter中的if语句

php codeigniter 组装查询结果

php - 在 codeigniter 中从数据库中获取列记录

php - 从 Facebook 群组获取事件

php - 如何在MySQL中按前两个和后两个字符搜索数据

php - 值未插入表中