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

时间:2013-07-26 14:32:07

标签: php mysql codeigniter

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

目前存储路径名的mysql如下

  

F:Xammphtdocsdrnirajvoraappointment /上传/ 0stock-插图4507047-设置的色-planets.jpg

但它应该像这样保存

  

F:XAMMP / htdocs中/ drnirajvora /约会/上传/ 0stock-插图4507047-设置的色-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;
}
    }

1 个答案:

答案 0 :(得分:1)

在最新的PHP中不推荐使用mysql_query,它也不是那么安全。我强烈建议切换到Mysqli或PDO。

要回答你的问题,尝试在变量上使用mysql_real_escape_string(),然后再将它们插入数据库。它会逃脱特殊的角色。