WP_HANDLE_UPLOAD()-如何在上载中上载到自定义子目录

时间:2014-04-12 作者:CodeVirtuoso

wp\\u handle\\u upload()适用于我,但可以在需要的地方上载文件(上载/年/月)。

问题:有没有办法告诉它将文件上载到自定义目录(uploads/mycustomdir)?或者是否有其他功能可以做到这一点?

我尝试的内容:

php的move\\u upload\\u file()(无法计算目标目录参数-这是一个插件,我需要它来为每个人工作,无论他们的目录结构如何)。

  • https://yoast.com/smarter-upload-handling-wp-plugins

    我将此代码粘贴到插件的核心文件中。什么都没发生。但我在评论中看到,这似乎对人们有用。

    如果你有答案,请给出一个完整的答案。我可以获取$\\u文件[\'myfile\']。从那以后,要采取什么步骤才能将该文件上传到uploads/mycustomfolder?

  • 1 个回复
    SO网友:TheDeadMedic

    您可以使用Joost提供的想法并使用upload_dir 筛选以临时将上载路径设置为其他位置。

    /**
     * Override the default upload path.
     * 
     * @param   array   $dir
     * @return  array
     */
    function wpse_141088_upload_dir( $dir ) {
        return array(
            \'path\'   => $dir[\'basedir\'] . \'/mycustomdir\',
            \'url\'    => $dir[\'baseurl\'] . \'/mycustomdir\',
            \'subdir\' => \'/mycustomdir\',
        ) + $dir;
    }
    
    然后在实践中,很容易做到:

    // Register our path override.
    add_filter( \'upload_dir\', \'wpse_141088_upload_dir\' );
    
    // Do our thing. WordPress will move the file to \'uploads/mycustomdir\'.
    $result = wp_handle_upload( $_FILE[\'myfile\'] );
    
    // Set everything back to normal.
    remove_filter( \'upload_dir\', \'wpse_141088_upload_dir\' );
    

    结束

    相关推荐

    上传的图像不在/Uploads文件夹中

    网站存在巨大问题。我更新了主题以使用帖子缩略图(这是多么旧),然后在尝试上载图像以用作特色缩略图时:图像会处理/压缩,但URL会导致404。网站没有任何异常。htaccess。实际上没有wp content/uploads目录,所以我做了一个,chmod权限是0755,所以这不应该是问题所在。我将“媒体设置”文件夹重置为默认文件夹,但该文件夹中不会出现任何图像。编辑:将上载文件夹更改为0777权限似乎可以解决此问题。这样保留权限安全吗?