我试图允许用户通过表单和HTTP POST请求上传音频。
这是我的页面配置文件中的相关表单代码。php:
<form method="post" action="wp-content/themes/freelanceengine-child/audio_upload.php" enctype="multipart/form-data">
<input type="file" name="file" id="file" accept="audio/*">
但浏览器从未访问我的php文件。我收到以下错误:
请求的资源/配置文件/wp内容/主题/自由引擎子项/音频上传。在此服务器上找不到php这个概要文件不在我的网站中,所以我不知道为什么要在URL前面加上它。我曾尝试重新启动服务器,并尝试使用不同的URL和浏览器,但/profile始终是预先准备好的。
如果你有见解,请帮助我理解为什么会发生这种情况。如果我知道它为什么坏了,我可能会把它修好。
另一方面,我认为插件是实现这种功能的最佳方式,但老实说,我从来没有使用过wordpress插件,所以我现在只坚持我所知道的。
最合适的回答,由SO网友:s_ha_dum 整理而成
您不应该使用相对URL。I\'ve written a number of answers about this already 相对URL与浏览器看到的页面相对。如果打开了permalinks,结果总是很糟糕。这个问题/错误太常见了,我只要看一下你的标题就猜到了答案。
其次,您不应该提交这样的独立主题文件。使用AJAX API (即使它实际上不是AJAX请求)。非常非常简单:
function my_ajax_wpse_213294() {
// your upload code
exit();
}
add_action(\'wp_ajax_my_ajax\', \'my_ajax_wpse_213294\'); // logged in only
add_action(\'wp_ajax_nopriv_my_ajax\', \'my_ajax_wpse_213294\');
提交至
/wp-admin/admin-ajax.php
可以使用
admin_url(\'/admin-ajax.php\');
使用
?action=my_ajax
URL参数。