无法使用wordpress上传功能上传文件

时间:2014-02-10 10:11:49

标签: php wordpress file-upload

我需要在wordpress上的自定义php插件中添加徽标上传功能。 我在wordpress codex上找到了这段代码:

if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['editfile'];
$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";
}

以下是表格:

<form action="' . site_url('/edit-company/?cid=' . $_GET['cid']) . '" method="post">
                                                <label><b>Company Name:</b></label> <input type="text" name="editname" value="' . $company->company_name . '">
                                                <label><b>Address:</b></label> <input type="text" name="editaddress" value="' . $company->company_address . '">
                                                <label><b>Telephone:</b></label> <input type="text" name="edittelephone" value="' . $company->company_telephone . '">
                                                <label><b>Fax:</b></label> <input type="text" name="editfax" value="' . $company->company_fax . '">
                                                <label><b>Email:</b></label> <input type="text" name="editemail" value="' . $company->company_email . '">
                                                <label><b>Website:</b></label> <input type="text" name="editwebsite" value="' . $company->company_website . '">
                                                <label><b>Logo:</b></label> <input type="file" name="editfile" id="file">
                                                <input type="submit" value="Submit">
                                            </form>

如果我向此提交文件,则会出现以下错误:

  

文件有效,已成功上传。 array(1){[“error”] =&gt;   string(212)“文件为空。请上传更实质的内容。   此错误也可能是由您的上传被禁用引起的   php.ini或post_max_size被定义为小于   php.ini中的upload_max_filesize。“}

我提交的文件大小约为50kb。上传更大或更小的文件似乎没有什么区别。

我在Wordpress管理员中上传任何大小的文件没有问题我不会认为php.ini或post max size导致此问题。

如果您对此有任何提示或信息,请告诉我。我已经坚持了很长一段时间了。尝试在vanilla PHP中使用简单的上传脚本,但似乎也没有用,所以我回来试图用wp函数完成它。

更新: - 尝试将上传文件夹的权限设置为777 - 没有帮助

1 个答案:

答案 0 :(得分:3)

请确保您的上传表单不在其他表单中。因为一旦我得到了与你相同的错误,问题是因为我的上传表单位于另一个表单内。

希望这可以提供帮助。

<强> [更新]

您的表单很好,但我看到您捕获的输入字段名称和帖子变量名称不同

$uploadedfile = $_FILES['file'];

<input type="file" name="editfile" id="file">

这些名称不能有所不同。尝试像这样编辑

$uploadedfile = $_FILES['editfile'];

<强> [更新]

还请将其添加到表单的属性

enctype="multipart/form-data"