我使用此代码从前端上载文件。
formData = new FormData;
formData.append(\'action\', \'upload-attachment\');
fileInputElement = document.getElementById(\'file\');
formData.append(\'async-upload\', fileInputElement.files[0]);
formData.append(\'name\', fileInputElement.files[0].name);
formData.append(\'type\', fileInputElement.files[0].type);
my_nonce = document.getElementById(\'my_nonce\').value;
formData.append(\'_wpnonce\', my_nonce);
axios.post(\'/wp-admin/async-upload.php\', formData, {
headers: {
\'Content-Type\': \'multipart/form-data\'
}
}).then(function(response) {
infos_contact.file_uploaded = response.data.data.filename;
infos_contact.file_uploaded_url = response.data.data.url;
})["catch"](function(error) {
console.log(error);
});
登录时工作正常,但不在未登录时。因为它是用于前端的,如果它在未登录时不工作,那么它就没有用了。我想如果你出于安全原因没有登录,WordPress会保护上传功能。
我可以用钩子绕过这个保护吗?
谢谢