如何从表单wordpress获取文件


How to get file from form wordpress?

我有一个带有表单的页面。

<form method='post'>
<input type='file' name='file_image'>
<input type='submit' value='send'>
</form>

当他们提交时,我如何将图像上传到"wp-content/uploads/"文件夹中。

如果可以的话,我如何在上传图像时调整图像大小?

请给我看带有注释的代码,如果有不止一种方法,我很乐意知道。非常感谢。

感谢大家的贡献。它起到了作用。只是总结一下。有两种方法可以做到这一点。

第一种方法是使用wordpress功能

//Check if function exist
if (!function_exists('wp_handle_upload')) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
//Store file in variable
$uploaded_file = $_FILES['file_image'];
//Overrides
upload_overrides = array('test_form' => false);
//Store upload in variable
$movefile = wp_handle_upload($uploaded_file,$upload_overrides);
//Check if upload was successful
if ($movefile) {
echo "File is valid and was successfully uploaded";
var_dump($movefile); //show details
} else {
echo "Possible file upload attack";
}

第二种方法是使用php函数

//Check if file exist
if (file_exists("full_path/uploads" . $_FILES["file_image"]["name"])) {
echo $_FILES["file_image"]["name"] . " already exists. ";
} 
else {
//Store file in variable
$uploadedfile = "full_path/uploads".$_FILES["file_image"]["name"];
move_uploaded_file($_FILES["file_image"]["tmp_name"], $uploadedfile);
echo "Stored in: " . $uploadedfile;
}

html

<form method='post'>
<input type='file' name='file_image'>
<input type='submit' value='send'>
</form>

第一种方式自动创建文件夹,如"uploads/2014/09/file_name"

第二种方法您必须手动创建文件夹

工作代码

    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";
    }

要了解这一点,请查看下面的链接:http://codex.wordpress.org/Function_Reference/wp_handle_upload

您的文件位于$_FILES["file_image"]中,因为它在您的表单中具有该名称。

您可以使用move_uploaded_file 复制文件

这里有一个移动和调整上传图像大小的例子。

第一次替换这个

<form method='post'>

<form method='post' enctype='multipart/form-data'>

提交表单后,您将在$_FILES['file_image']['name']中获得文件名,

然后使用,move_uploaded_file(file,newloc)检查一下。

少量的研究和努力将使您朝着正确的方向前进。看看这个详细描述你从字体端上传图像的链接。

http://code.tutsplus.com/articles/allow-users-to-submit-images-to-your-wordpress-site--wp-22601

让WordPress为管理媒体存储和重新调整大小做他的工作,WordPress媒体上传脚本是重新调整图像大小的最强大和智能的技术之一。

文件上传表单

<form method='post' action="upload.php" enctype="multipart/form-data">
    <input type='file' name='file_image'>
    <input type='submit' value='send'>
</form>

您的上传文件:

if (file_exists("/wp-content/upload/" . $_FILES["file_image"]["name"])) {
    echo $_FILES["file_image"]["name"] . " already exists. ";
} else {
    $uploadedfile = "/wp-content/upload/".$_FILES["file_image"]["name"];
    move_uploaded_file($_FILES["file_image"]["tmp_name"], $uploadedfile);
    echo "Stored in: " . $uploadedfile;
}

我强烈建议你自己调整大小。有几个很棒的教程:

http://code.tutsplus.com/tutorials/image-resizing-made-easy-with-php--net-10362

http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

然而,如果你正在为wordpress编写插件,这些东西已经对你可用:

http://www.inkthemes.com/code-to-integrate-wordpress-media-uploader-in-plugintheme/06/