我有一个带有表单的页面。
<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/