媒体上传-仅选择一个文件

时间:2011-04-20 作者:José Pablo Orozco Marín

可以将上载过程限制为仅选择一个文件。现在,一个人可以从pc上选择各种文件,我正在设法将此功能限制为一个文件。

提前谢谢。

3 个回复
最合适的回答,由SO网友:Chris_O 整理而成

WordPress包含2个媒体加载程序。Flash uploader允许选择多个文件,而浏览器uploader一次只允许选择一个文件。

要禁用Flash uploader,请在函数中添加以下过滤器。php

add_filter(\'flash_uploader\', create_function(\'$flash\', \'return false;\'));
进一步研究后,使用create\\u函数可能不是一个好主意。拆除过滤器的更好方法是:
function disable_flash_uplaoder() {
        return $flash = false;
}
add_filter( \'flash_uploader\', \'disable_flash_uploader\', 7 ); 

SO网友:Bainternet

Chris给出的答案很好,但实际上并没有将上载限制为仅一个文件,一次只上载一个文件,因此用户可以上载任意多个文件,但您也可以使用wp_handle_upload_prefilter 胡克,看看Mikes answer 类似的问题。

SO网友:Jan Fabry

您可以通过修改Flash uploader以仅接受一个文件the BUTTON_ACTION setting. 您可以通过SWFUpload配置(在WordPress中硬编码)或the setButtonAction() method 生成的SWFUpload对象,但这仅在加载Flash文件后才起作用。我设法做到了这一点swfupload_loaded_handler 挂钩:

var wpse15264_original_onload = SWFUpload.onload;
SWFUpload.onload = function() {
    wpse15264_original_onload();
    swfu.addSetting( \'swfupload_loaded_handler\', function() {
        this.setButtonAction( SWFUpload.BUTTON_ACTION.SELECT_FILE );
    } );
}
您可以在SWFUpload代码之后通过the post-html-upload-ui hook.

此代码不会将处理程序添加到swfupload_loaded_handler 事件,它将替换当前处理程序。这应该没有问题,因为WordPress不使用此处理程序,但如果将来使用此处理程序,您应该确保保存原始处理程序并执行它(就像我使用onload 处理程序)。

当然,这并不妨碍人们多次使用上传程序。有关解决方案,请参阅Bainternet的参考资料。

结束

相关推荐

404从wp-Content/Uploads/获取图像时

我在获取图像时获得404状态,http仍然包含该图像。图像显示在浏览器中,但404代码中断了一些应用程序。对wp内容/上载/的调用被重定向到。htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteRule (.*) /index.php?getfile=$1 [L] </IfModule>&