0

完全なファイルパスを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;
}
    }
4

1 に答える 1

1

mysql_query は最新の PHP では推奨されておらず、安全性も高くありません。Mysqli または PDO に切り替えることを強くお勧めします。

ただし、質問に答えるには、変数を DB に挿入する前に変数で mysql_real_escape_string() を使用してみてください。特殊文字をエスケープします。

于 2013-07-26T14:40:18.033 に答える