繁体   English   中英

PHP文件无法正确通过Wordpress变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM