我正在开发一个wordpress插件,它将生成带有一些选项的表单供用户上传文件。这是我的表单代码:
<form class="upload-resller-certs" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" method="post">
<div class="uploads-container">
<label for="w-9-upload">
W-9 Form<br>
<input type="file" name="w-9" value="w-9" id="w-9-upload">
</label>
<label for="resale-cert-upload">
Reseller Certification Form<br>
<input type="file" name="resale-cert" value="resale-cert" id="resale-cert-upload">
</label>
</div>
<input type="hidden" name="action" value="upload_resale_certs">
<input type="submit" name="upload" value="upload">
</form>
然后我处理表单的操作如下
public function update_wholesale_certs()
{
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo "<pre>";
print_r($_FILES);
echo "</pre>";
}
这是那些print_r所显示的
//$_POST dump
Array
(
[w-9] => file1.pdf
[resale-cert] => file2.jpg
[action] => upload_resale_certs
[upload] => upload
)
//$_FILES dump
Array
(
)
我的问题是为什么我的$ _FILES数组为空?
谢谢
答案 0 :(得分:1)
Welp在发布此消息后大约5分钟就发现了问题。我的解决方案是将enctype="multipart/form-data"
添加到表单中,如下所示:
<form enctype="multipart/form-data" class="upload-resller-certs" action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="post">
<h3>Please Upload Your Certifications<br> <small>Recieve 20% off your next order once completed</small> </h3>
<div class="uploads-container">
<label for="w-9-upload">
W-9 Form<br>
<input type="file" name="w-9" value="w-9" id="w-9-upload">
</label>
<label for="resale-cert-upload">
Reseller Certification Form<br>
<input type="file" name="resale-cert" value="resale-cert" id="resale-cert-upload">
</label>
</div>
<input type="hidden" name="action" value="upload_resale_certs">
<input type="submit" name="upload" value="upload">
</form>
希望可以帮助遇到相同问题的任何人。