WordPress自定义文件在页面上传

2023-12-06

我目前正在使用此代码进行 PHP 文件上传(直接在 WordPress 页面上找到):

<form enctype="multipart/form-data" action="upload.php" method="POST">
Please choose a file: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form> 

上传.php

    $allowedExts = array("jpg", "jpeg", "gif", "png");
    $extension = end(explode(".", $_FILES["file"]["name"]));
    if ((($_FILES["file"]["type"] == "image/gif")
         || ($_FILES["file"]["type"] == "image/jpeg")
         || ($_FILES["file"]["type"] == "image/png")
         || ($_FILES["file"]["type"] == "image/pjpeg"))
        && ($_FILES["file"]["size"] < 20000)
        && in_array($extension, $allowedExts))
    {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
        }
        else
        {
            echo "Upload: " . $_FILES["file"]["name"] . "<br>";
            echo "Type: " . $_FILES["file"]["type"] . "<br>";
            echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

            if (file_exists("upload/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"],
                                   "upload/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
            }
        }
    }
    else
    {
        echo "Invalid file";
    }

即使我 100% 知道它应该有效,它也总是返回“无效文件”。

我一直在网上查找,我认为 WP 不能执行 enctype="multipart/form-data" 所以这就是它不起作用的原因。

有谁有解决方法或知道为什么这行不通?


我知道这篇文章有点旧,但希望对其他人有所帮助。

我正在做一些非常相似的事情(自定义上传以显示在自定义页面上),并且还使用几乎完全相同的代码objectiveccoder001。我一直收到“无效文件”。并写入权限错误。我最终选择了这个:

if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
    echo "File is valid, and was successfully uploaded.\n";
    //var_dump( $movefile);
} else {
    echo "Possible file upload attack!\n";
}

如果您不想使用 Wordpress 的媒体上传器而只需要简单的文件上传,那么效果很好。它仍然使用过时的文件结构(如内置上传器)来上传它。然后你就可以使用$movefile数组来获取文件的数据。

参考:http://codex.wordpress.org/Function_Reference/wp_handle_upload

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WordPress自定义文件在页面上传 的相关文章

随机推荐

  • Google App Engine 原子部分?

    假设您从数据存储中检索一组记录 类似于 select from MyClass whereserved false 我如何确保另一个用户没有设置保留仍然为假 我查看了事务文档 并对谷歌的解决方案感到震惊 该解决方案是捕获异常并在循环中重试
  • 使用 Google Identity Services (GIS) JavaScript SDK,如何扩展会话?

    per https developers google com identity oauth2 web reference js reference 似乎没有一个refresh token流动 过期时间是1小时 所以并不可怕 但我想在用户仍
  • Clearcase 和 java 进程:更改视图不适用

    我有一个简单的应用程序 它接收用户输入的 CC 流名称 并假设从该流存储库返回特定文件的内容 我尝试使用一个简单的 shell 脚本来执行此操作 用户输入流名称 java接收流名称 运行一个进程 该进程运行一个脚本 myccscript s
  • “无法找到主类”

    我尝试从命令提示符运行示例 Java 应用程序 但收到以下错误 Exception in thread main java lang NoClassDefFoundError com badlogic gdx helloworld Hell
  • Objective-C 序列化复杂对象列表

    我有一个类列表 如下所示 interface AISlideItem NSObject NSString PlaceHolderName NSUInteger PlaceHolderID property nonatomic strong
  • OpenJPA 与 Glassfish 配合得很好吗?

    有人成功地将 OpenJPA 与 Glassfish 结合使用吗 我正在尝试将 OpenJPA 2 1 与 Glassfish 3 1 开源一起使用 我已按照此处的说明将两者集成 gt http weblogs java net blog
  • 如何在编译时确定元组元素的偏移量?

    我需要确定元组中某个索引元素的偏移量compile time 我尝试了这个功能 复制自https stackoverflow com a 55071840 225186 接近尾声 template
  • 对文件夹中的所有文件执行命令

    我想对目录中的所有文件运行命令 对于 c conversion ajt 中的 1 执行以下操作转换命令 1 2 但是 我需要一个与输入相同但具有不同文件扩展名的输出文件名 asciitojt exe filename1 ajt filena
  • 在 mutate() 中使用列函数的变量

    我如何使用变量来代替列名在 dplyr 字符串中 举个例子 我想向 iris 数据集添加一列 称为 sum 它是 Sepal Length 和 Sepal Width 的总和 简而言之 我想要以下代码的工作版本 x Sepal Length
  • Python str() 双引号字符串

    我知道这个问题听起来很幼稚 但我还是坚持下去 我正在使用 jquery 自动完成 结果发现它需要 data1 data2 形式的列表 我正在从 json 文件获取数据并且 data json load fobj content data s
  • PHP 作曲家 HTTPS 错误 1416F086。证书验证失败

    我突然在使用 PHP Composer 时遇到了这个令人讨厌的 HTTPS 错误 而 Composer 曾经在我的机器上工作 Github 和 stackoverflow 上已经有存在相同问题的主题 我尝试了所有推荐的东西 但没有任何对我有
  • C# - 内部属性在快速观察中“可读”但不使用反射?

    我看到 快速监视 窗口可以访问所有属性 无论库中类的访问限制 内部 受保护 私有 如何 即使在完全不同的应用程序 库和命名空间中引用该库也是如此 然而我没有找到使用 反射 访问这些的方法 我特别尝试 读取 注意 只是读取 程序集的内部属性
  • 字符串文字中的转义状态作为“String#tr”的参数

    对于作为参数的单引号字符串文字中的反斜杠的转义状态 对我来说有些神秘String tr 你能解释一下下面三个例子之间的对比吗 我尤其不明白第二个 为了避免复杂化 我正在使用 d 在这里 当用双引号转义时不会改变含义 d d tr x gt
  • 使用反应式扩展观察传入的 websocket 消息?

    我想使用 linq 来处理通过 websocket 连接接收到的事件 这是我到目前为止所拥有的 private static void Main string WsEndpoint wss push planetside2 com stre
  • 服务中的可运行对象是否在 UI 线程上运行

    在 Android 中 当我在服务内创建一个可运行对象并运行它时 虽然我意识到它在自己的线程中运行 但该线程是否是 UI 线程的一部分 换句话说 如果runnable执行了一个很长的过程 会影响UI吗 EDIT private class
  • 如何根据行中的文本单击表格中的链接

    使用 page object 和 watir webdriver 如何根据行文本单击表中的链接 如下所示 该表包含 3 行 第一列中有名称 右侧列中有相应的详细信息链接 仪表板 详细信息 示例 详细信息 等等 div class basic
  • Google 地图:为什么我会收到referer-not-allowed-map-error? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我有一个 Android 应用程序 在 Play 商店之外 它使用带有 Javascript 的 HTML 页面来调用 Google 地图 我得到一个referer not allowed
  • 如何向服务器套接字写入字节

    我正在编写一个java套接字程序来从服务器读取数据 我无法控制服务器 下面是约定的协议 2字节 幻数 2字节 数据长度 N 字节 ASCII 字符串数据有效负载 幻数和数据长度的大端序 例如 如果我的请求是 command 1 getuse
  • 如果 value 中的 a 值等于 R 中的上一行,则删除整行

    我是 R 编程新手 需要帮助根据单列的值删除整行 如果单列中的值等于前一行的值 我想删除该行 以下是我的数据 x id x timestamp x count 71 1 1435114605 61 72 1 1435114606 61 73
  • WordPress自定义文件在页面上传

    我目前正在使用此代码进行 PHP 文件上传 直接在 WordPress 页面上找到