wp_handle_upload不接受有效的mime类型

时间:2017-08-25 12:36:18

标签: wordpress file-upload mime-types

我已尝试过至少3种解决方法,以便在wordpress中的wp_handle_upload函数中接受我的.vcf文件。

  1. 添加了过滤器和扩展程序:我尝试了多种类型,包括' text / x-vcard',' application / vcard',' text / anytext' 。 mime类型的过滤器添加工作了一段时间,然后再次停止工作。

    add_filter('upload_mimes', array('Daisy', 'daisy_mime_types'), 1, 1);
    public static function daisy_mime_types($mime_types){
      $mime_types['vcf'] = 'text/*'; //Adding .vcf extension
      return $mime_types;
    }  
    
  2. 我将mime类型作为数组添加到wp_handle_upload参数中。

    $vcard_upload = wp_handle_upload( $_FILES["vcard"], array('test_form' => false, 'mimes' => array('vcf' => 'text/*')) );
    
  3. 我使用插件WP添加Mime类型。

  4. 无论何种方法,我都会收到以下错误:"抱歉,出于安全考虑,不允许使用此文件类型。"但是,如果我使用WP Media Handler,我可以上传文件,以便通过其他渠道接受mime类型。

    在确认时,mime类型位于可接受的mime类型列表中:

        print_r(get_allowed_mime_types())
       ` Array
        (
    [jpg|jpeg|jpe] => image/jpeg
    [gif] => image/gif
    [png] => image/png
    [bmp] => image/bmp
    [tiff|tif] => image/tiff
    [ico] => image/x-icon
    [asf|asx] => video/x-ms-asf
    [wmv] => video/x-ms-wmv
    [wmx] => video/x-ms-wmx
    [wm] => video/x-ms-wm
    [avi] => video/avi
    [divx] => video/divx
    [flv] => video/x-flv
    [mov|qt] => video/quicktime
    [mpeg|mpg|mpe] => video/mpeg
    [mp4|m4v] => video/mp4
    [ogv] => video/ogg
    [webm] => video/webm
    [mkv] => video/x-matroska
    [3gp|3gpp] => video/3gpp
    [3g2|3gp2] => video/3gpp2
    [txt|asc|c|cc|h|srt] => text/plain
    [csv] => text/csv
    [tsv] => text/tab-separated-values
    [ics] => text/calendar
    [rtx] => text/richtext
    [css] => text/css
    [htm|html] => text/html
    [vtt] => text/vtt
    [dfxp] => application/ttaf+xml
    [mp3|m4a|m4b] => audio/mpeg
    [ra|ram] => audio/x-realaudio
    [wav] => audio/wav
    [ogg|oga] => audio/ogg
    [mid|midi] => audio/midi
    [wma] => audio/x-ms-wma
    [wax] => audio/x-ms-wax
    [mka] => audio/x-matroska
    [rtf] => application/rtf
    [js] => application/javascript
    [pdf] => application/pdf
    [class] => application/java
    [tar] => application/x-tar
    [zip] => application/zip
    [gz|gzip] => application/x-gzip
    [rar] => application/rar
    [7z] => application/x-7z-compressed
    [psd] => application/octet-stream
    [xcf] => application/octet-stream
    [doc] => application/msword
    [pot|pps|ppt] => application/vnd.ms-powerpoint
    [wri] => application/vnd.ms-write
    [xla|xls|xlt|xlw] => application/vnd.ms-excel
    [mdb] => application/vnd.ms-access
    [mpp] => application/vnd.ms-project
    [docx] => application/vnd.openxmlformats-officedocument.wordprocessingml.document
    [docm] => application/vnd.ms-word.document.macroEnabled.12
    [dotx] => application/vnd.openxmlformats-officedocument.wordprocessingml.template
    [dotm] => application/vnd.ms-word.template.macroEnabled.12
    [xlsx] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    [xlsm] => application/vnd.ms-excel.sheet.macroEnabled.12
    [xlsb] => application/vnd.ms-excel.sheet.binary.macroEnabled.12
    [xltx] => application/vnd.openxmlformats-officedocument.spreadsheetml.template
    [xltm] => application/vnd.ms-excel.template.macroEnabled.12
    [xlam] => application/vnd.ms-excel.addin.macroEnabled.12
    [pptx] => application/vnd.openxmlformats-officedocument.presentationml.presentation
    [pptm] => application/vnd.ms-powerpoint.presentation.macroEnabled.12
    [ppsx] => application/vnd.openxmlformats-officedocument.presentationml.slideshow
    [ppsm] => application/vnd.ms-powerpoint.slideshow.macroEnabled.12
    [potx] => application/vnd.openxmlformats-officedocument.presentationml.template
    [potm] => application/vnd.ms-powerpoint.template.macroEnabled.12
    [ppam] => application/vnd.ms-powerpoint.addin.macroEnabled.12
    [sldx] => application/vnd.openxmlformats-officedocument.presentationml.slide
    [sldm] => application/vnd.ms-powerpoint.slide.macroEnabled.12
    [onetoc|onetoc2|onetmp|onepkg] => application/onenote
    [oxps] => application/oxps
    [xps] => application/vnd.ms-xpsdocument
    [odt] => application/vnd.oasis.opendocument.text
    [odp] => application/vnd.oasis.opendocument.presentation
    [ods] => application/vnd.oasis.opendocument.spreadsheet
    [odg] => application/vnd.oasis.opendocument.graphics
    [odc] => application/vnd.oasis.opendocument.chart
    [odb] => application/vnd.oasis.opendocument.database
    [odf] => application/vnd.oasis.opendocument.formula
    [wp|wpd] => application/wordperfect
    [key] => application/vnd.apple.keynote
    [numbers] => application/vnd.apple.numbers
    [pages] => application/vnd.apple.pages
    [vcf] => text/x-vcard
       )
    

1 个答案:

答案 0 :(得分:0)

我认为这可能与您的Web服务器配置中如何定义mime类型有关。我对ogg(视频文件.ogv),行:

也有同样的问题
$mime_types['ogv'] = 'video/ogg';

在本地主机上工作正常,但客户端的服务器没有工作,最后我发现我必须增加一行:

$mime_types['ogv'] = 'application/ogg';

所以我建议检查服务器的配置或(如果不可能)盲目检查其他mime类型,如:

$mime_types['vcf'] = 'application/vcf';