如何在我的插件上传器中更改上传目录

     2023-02-24     278

关键词:

【中文标题】如何在我的插件上传器中更改上传目录【英文标题】:How to change upload directory in my plugin uploader 【发布时间】:2016-10-02 04:08:28 【问题描述】:

我开发了一个插件,在我的插件中有一个自定义媒体上传器。当我从插件上传器上传任何文件时,该文件被上传并保存在 WordPress 默认的 uploads/ 文件夹中。

但我希望当我从插件上传器上传文件时,这些文件应该上传到 Wordpress 自定义 uploads 文件夹内的新文件夹中,所以我从谷歌搜索并找到了这段代码:

 <?php
     function upload_dir($dirs)                                    
                                                             
        $dirs['subdir'] = '/my-uploads';                  
        $dirs['path'] = $dirs['basedir'] . '/my-uploads'; 
        $dirs['url'] = $dirs['baseurl'] . '/my-uploads';  

        return $dirs;                                         
                                                             

add_filter('upload_dir', 'upload_dir');                       

   ?>

现在从(帖子、页面等)上传的所有文件也都存储在该插件文件夹中。

我希望只将那些从我的插件上传器上传的文件保存在该my-folder 中,其余文件应保存在 WordPress 默认的uploads 文件夹中...

【问题讨论】:

【参考方案1】:

在上传代码之前,使用

add_filter('upload_dir', 'upload_dir'); 

然后在你上传代码后,使用:

remove_filter('upload_dir', 'upload_dir'); 

这样,过滤器仅适用于您的插件上传,不适用于其他地方。

【讨论】:

通过这样做,它再次将文件保存在默认上传文件夹而不是插件文件夹中...... 你能发布一段你的代码吗?通常应该起作用的是:add_filter、wp_handle_upload、remove_filter。 wp_handle_upload 是什么意思? 我没用过这个功能……为什么用它? @AasmaZafar 这是一个很好的答案。你试过了吗?最好能展示实现上传功能的代码。【参考方案2】:

您可能需要使用普通 PHP 自己处理文件。处理表单时,请尝试以下操作:

$uploaddir = '/path/to/plugin/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if( move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
    echo 'success!';
else
    echo 'fail!';

并使用print_r($_FILES); 进行调试。

不过要非常非常小心 - 您可能会造成安全风险。有关更多信息,请参阅Secure PHP File Upload Script。

【讨论】:

【参考方案3】:

这可能与 .htaccess 设置有关。 .htaccess 文件限制了您可以执行的操作。或者它可能是您文件之外的其他设置。您是否尝试过在超过 1 个服务器上运行它来测试它?

【讨论】:

【参考方案4】:

这是一个有效的solution。

add_filter('upload_dir', 'my_upload_dir');
$upload = wp_upload_dir();
remove_filter('upload_dir', 'my_upload_dir');

funcion my_upload_dir($upload) 
  $upload['subdir'] = '/sub-dir-to-use' . $upload['subdir'];
  $upload['path']       = $upload['basedir'] . $upload['subdir'];
  $upload['url']        = $upload['baseurl'] . $upload['subdir'];
  return $upload;

【讨论】:

如何更改最大文件大小上传?

】如何更改最大文件大小上传?【英文标题】:HowToChangeTheMaximumFileSizeUpload?【发布时间】:2011-09-2816:55:31【问题描述】:您如何更改最大上传文件大小,我希望人们在我的网站上只能大声上传25mb的视频文件,您可以这样做吗?... 查看详情

WordPress插件上传安装

...】:我正在使用带有PHP7.2、MySql和Apache2的LinuxMint19.1。我在我的LocalHost中安装了WordPress5.3.2。现在,当我尝试上传插件ZIP文件进行安装时,我面临以下错误。我把777权限放到了WordPress目录。我在谷歌上搜索了很 查看详情

使用 HTML5 文件输入时单击按钮从多个文件上传器中删除文件

...gHTML5fileinput【发布时间】:2015-11-1019:51:15【问题描述】:如何在此处添加remove按钮,就像这样在文件队列中一个一个地简单地删除我不使用带有OOB插件的免费文件上传插件的原因是因为我的客户要求是出于安全目的,他们 查看详情

如何将更改从开发上传到生产[关闭]

】如何将更改从开发上传到生产[关闭]【英文标题】:Howtouploadchangesfromdevtoproduction[closed]【发布时间】:2013-12-2909:38:58【问题描述】:在我的公司,我们有一个用c#编写的系统并使用sqlserverdb。每当我们想将代码更改上传到生产环... 查看详情

jQuery Filer:如何在我的表单上禁用/启用

】jQueryFiler:如何在我的表单上禁用/启用【英文标题】:jQueryFiler:howtodisable/enableonmyform【发布时间】:2017-04-1509:41:07【问题描述】:您好,我正在我的页面上实现一个带有文件上传框的表单。我决定使用jQueryFiler插件,它工作得... 查看详情

如何在 FCKeditor 中*动态*更改图像上传路径

】如何在FCKeditor中*动态*更改图像上传路径【英文标题】:HowdoIchangeimageuploadpath*dynamically*inFCKeditor【发布时间】:2010-11-1914:29:40【问题描述】:我正在为我的FCKeditor使用ASP.NET二进制文件,并且需要在同一页面上插入两个编辑器。... 查看详情

如何在 Trumbowyg 中添加云参数以上传插件

】如何在Trumbowyg中添加云参数以上传插件【英文标题】:howtoaddcloudinaryparameterstouploadplugininTrumbowyg【发布时间】:2019-05-2403:25:27【问题描述】:我在我的项目中使用trumbowyg编辑器。从文档中知道可以使用下面的代码来设置编辑器... 查看详情

如何创建允许上传/更改个人资料图片的应用程序?

】如何创建允许上传/更改个人资料图片的应用程序?【英文标题】:HowToCreateAnAppThatAllowsForProfilePictureUpload/Change?【发布时间】:2016-04-0615:15:00【问题描述】:我一直在寻找如何在我的应用中实现个人资料图片更改的示例。我想... 查看详情

如何使用更改和删除事件在 firefox 和 chrome/chromium 上上传和列出目录

】如何使用更改和删除事件在firefox和chrome/chromium上上传和列出目录【英文标题】:Howtouploadandlistdirectoriesatfirefoxandchrome/chromiumusingchangeanddropevents【发布时间】:2017-02-0113:03:04【问题描述】:mozilla和webkit浏览器现在都允许上传目... 查看详情

如何更改 docker jwilder/nginx-proxy 上传限制?

】如何更改dockerjwilder/nginx-proxy上传限制?【英文标题】:HowcanIchangethedockerjwilder/nginx-proxyuploadlimits?【发布时间】:2018-04-2920:14:07【问题描述】:在我的架构中,我使用/jwilder/nginx-proxy作为docker中的代理服务器,然后安装了3个带... 查看详情

Xcode:如何在管理器中验证应用程序:iOS

】Xcode:如何在管理器中验证应用程序:iOS【英文标题】:Xcode:Howtovalidatetheappinorganizer:iOS【发布时间】:2013-08-2313:06:26【问题描述】:这是我第一次在iTunes中上传我的应用程序。首先我创建了一个开发者配置文件,设置了代码签... 查看详情

如何允许上传同名的文件 jquery.filer

】如何允许上传同名的文件jquery.filer【英文标题】:Howtoallowuploadfilewithsamenamejquery.filer【发布时间】:2017-01-2803:21:39【问题描述】:我正在使用jquery.filer插件在我的页面上上传文件。它工作正常,但是当我再次选择相同的文件进... 查看详情

用户如何在我的 codeigniter 注册表单上上传个人资料图片

】用户如何在我的codeigniter注册表单上上传个人资料图片【英文标题】:Howcanauseruploadaprofilepictureonmycodeigniterregistrationform【发布时间】:2017-12-0122:17:24【问题描述】:我在CodeIgniter框架上制作了一个用户注册表单,以便用户可以... 查看详情

如何在我的输入中显示上传的图像路径(laravel)

】如何在我的输入中显示上传的图像路径(laravel)【英文标题】:Howtodisplayauploadedimagepathinmyinput(laravel)【发布时间】:2020-08-1020:02:28【问题描述】:当用户想要编辑自己的帖子时,我希望当前上传的图片显示在输入字段中。我... 查看详情

CKEditor 和 C# Web API,使用简单的上传插件上传图片

...图片并直接从包发送到服务器。两天以来,我试图弄清楚如何将发送的图像从Angular前端捕获到WebAPI, 查看详情

web端图片上传无法选择图片问题

...文件点击确定时,却无法添加到页面上,这是为什么?该如何解决?注:我的图片路径改变不了,因为是插件抓图,插件默认路径,无法改变,D盘的文件可以选中直接打开硬盘看不到确定存在的目录,那可能是那个目录是个隐... 查看详情

基于更改上传文件的智能方式

...sbasedonchanges【发布时间】:2013-07-2419:02:08【问题描述】:我的应用程序必须监视目录的文件更改,并在进行更改时上传副本。为此,我使用了FileObserver。我将它上传到创建、移动到、关闭写入和修改。问题在于修改。每次将更改... 查看详情

在ui图像查看器中上传的照片保持消失

...序或转到另一个页面并返回时,上传的照片会消失。我该如何保留它们?-(IBAction)selectImage:(id)senderUIImagePickerControl 查看详情