[英]PHP file won't pass Wordpress Variable Properly
有一個很奇怪的問題,無法解決。 我正在使用“ UPLOADIFY”從小型網絡應用上傳圖片。 它運行了好幾個月,然后突然停止工作。 理想情況下,我想獲取登錄的Wordpress用戶的用戶名並將其添加到圖像文件名。
這是我的uploadify文件的一部分:
<?php
include_once($_SERVER['DOCUMENT_ROOT'] .'/wp-config.php');
include_once($_SERVER['DOCUMENT_ROOT'] .'/wp-load.php');
include_once($_SERVER['DOCUMENT_ROOT'] .'/wp-includes/wp-db.php');
global $user_login , $user_email;
get_currentuserinfo();
$variableuser_id = $user_login;
$ses_id = $variableuser_id;
$ses_id = "1" . $ses_id . "z";
echo "This is a test " . $ses_id;
然后稍后在uploadify中,我有:
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $ses_id . "-" . str_replace(" ", "", $_FILES['Filedata']['name']);
所以...當我使用uploadify上傳圖像時,它不會在圖像名稱中添加用戶名,它確實在文件名中添加了“ 1”和“ z”,但中間完全沒有用戶名。
如果我在瀏覽器中正常啟動uploadify.php文件,它將顯示“ This is a test 1adminz”,因為它應該以admin身份登錄。 有任何想法嗎? 我很沮喪! 順便說一句,我知道$ ses_id不是理想的varname,但是它只是在我有一個名為session的會話ID時才在我的代碼中繼續使用。
代替
global $user_login , $user_email;
get_currentuserinfo();
采用
global $current_user;
get_currentuserinfo()
$user_login = $current_user->user_login;
$user_email = $current_user->user_email;
有關參考,請參見http://codex.wordpress.org/Function_Reference/get_currentuserinfo
好的,我真的無法解釋這一點,但是我找到了一個解決方案,該解決方案在幾個不同服務器上的每個安裝中修復了uploadify。
走這條線
$targetFile = rtrim($targetPath,'/') . '/' . $ses_id . "-" . str_replace(" ", "", $_FILES['Filedata']['name']);
然后注釋掉一半
$targetFile = rtrim($targetPath,'/') . '/' . $ses_id . "-"; // . str_replace(" ", "", $_FILES['Filedata']['name']);
令人驚訝的是,它現在使用$ ses_id變量和'-'重命名了上傳的圖像。 沒有明顯的圖像后綴。
所以對於它的地獄,我沒有評論結尾部分,並且低估了它的工作! 心靈飛揚!
這對我來說沒有任何意義,但可以在多台服務器上解決!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.