我在这里遇到最奇怪的问题。我的网站上有一位作家,使用WordPress 4.2.2(但它发生了好几个月)不断上传照片的名称如())
,00
,甚至没有扩展名,并且出于某种黑暗的原因,这些图片绕过了WordPress上传过滤器并获得了疯狂的名称,例如jpg
或jpg4
。
当我们使用我们的图像调整大小系统结束使用jpg12-250x100.
(注意尾随点)这样的名称创建图像时,混乱甚至更大。
因此我们的CloudFlare缓存中断,内部缓存中断并完成了这个青少年的卧室,我无法通过超级用户访问重现此错误甚至。我已经检查了他的用户,但他没有unfiltered_upload
的角色。
我甚至不知道如何开始这项调查,因为我无法使用我的帐户进行调查。 WordPress'是否有任何过滤器?上传系统,我可以搜索我的插件,以隔离可疑的代码?我现在完全失明了。
谢谢, 维尼。
答案 0 :(得分:5)
您可以检查wp_check_filetype_and_ext
以检查文件类型和正确的扩展名。
参考:https://codex.wordpress.org/Function_Reference/wp_check_filetype_and_ext
您可以使用wp_handle_upload
挂钩来处理上传的文件,类似于:
https://wordpress.stackexchange.com/a/38585
答案 1 :(得分:2)
Hello Vinicius Tavares,
如果你需要WordPress上传没有扩展名的照片,请按照以下步骤操作。
1)添加管理页面
2)添加wordpress媒体文件
3)为图像上传编写Html
4)用于图像上传媒体的js
5)将图像保存在数据库中。
add_action( 'admin_menu', 'register_my_custom_menu_page' );
function register_my_custom_menu_page() {
add_menu_page( 'Image uploding', 'Image uploding', 'manage_options', 'myplugin/myplugin-admin.php', 'Uploding_images_own', '', 6 );
}
function Uploding_images_own(){
wp_enqueue_script('jquery');
wp_enqueue_media();
?>
<div style="margin:20px 20px">
<label for="image_url">Image</label>
<input type="text" name="image_url" id="image_url" class="regular-text">
<input type="button" name="upload-btn" id="upload-btn" class="button-secondary" value="Upload Image">
</div>
<script type="text/javascript">
jQuery(document).ready(function($){
$('#upload-btn').click(function(e) {
e.preventDefault();
var image = wp.media({
title: 'Upload Image',
// mutiple: true if you want to upload multiple files at once
multiple: false
}).open()
.on('select', function(e){
// This will return the selected image from the Media Uploader, the result is an object
var uploaded_image = image.state().get('selection').first();
// We convert uploaded_image to a JSON object to make accessing it easier
// Output to the console uploaded_image
console.log(uploaded_image);
var image_url = uploaded_image.toJSON().url;
// Let's assign the url value to the input field
$('#image_url').val(image_url);
});
});
});
</script>
<?php } ?>