WP插件图片上传

时间:2014-12-30 03:58:23

标签: php wordpress image mysqli

$pid = $wpdb->insert_id; 
$newname = "$pid.jpg";

$dir = plugin_dir_path( __FILE__ );
    echo "<pre>";
    var_dump($dir);
    echo "</pre><br>";  
move_uploaded_file( $_FILES['fileField']['tmp_name'], "images/$newname");


$message ="directoryBase inserted";

以上是我尝试调试此Wordpress片段。基本上我是在创建一个迷你目录。

在这段代码之上是我的MYSQLI插入语句,在执行时返回我的$ pid。 ID被插入到数据库中,然后当我从数据库中调用行时,我准备好显示图像时使用它来匹配并拉出url。

通常我会为图像创建一个目录,然后将它们设置为此目录,如上所述。文件夹images /位于插件主目录中。

我遇到的问题是确定move_uploaded_file行。

是否有一种特定的方法可以确定向上或向下移动多远以找到正确的目录。我无法抛出任何错误,也没有图像按预期添加到我的自定义插件目录中。

我完全没有使用Wordpress,但我知道足够的PHP是危险的。

1 个答案:

答案 0 :(得分:1)

在将文件移动到任何目录之前请记住以下步骤:

  1. 检查您要上传的文件类型,例如图片,pdf,文字文件等。
  2. 如果需要,请检查文件的大小。
  3. 检查要上传文件的目录是否存在,请确保已增加 已从php.ini文件
  4. 上传了最大尺寸
  5. 检查目录的权限
  6. 如果以上所有要点都通过,请继续move_uploaded_file() 现在使用您的脚本检查插件中是否存在images目录,或者您想要存储的位置。

    // http://codex.wordpress.org/Function_Reference/plugin_dir_path
    $path = plugin_dir_path(__FILE__);
    if( ! is_dir($path.'images') ) {
        mkdir($path.'images', 0755);
    } 
    

    然后像这样使用move_uploaded_file

    // Return true if file moved successfully
    if( move_uploaded_file( $_FILES['fileField']['tmp_name'], $path."images/$newname") ) {
    }
    

    希望这会对你有所帮助。