【发布时间】:2018-02-03 12:22:33
【问题描述】:
我已经尝试了至少 3 种解决方法来让我的 .vcf 文件在 wordpress 中的 wp_handle_upload 函数期间被接受。
-
添加过滤器和扩展:我尝试了几种类型,包括“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; } -
我将 mime 类型作为数组添加到 wp_handle_upload 参数中。
$vcard_upload = wp_handle_upload( $_FILES["vcard"], array('test_form' => false, 'mimes' => array('vcf' => 'text/*')) ); 我使用了插件 WP Add Mime Types。
无论采用何种方法,我都会收到以下错误:“抱歉,出于安全原因,不允许使用此文件类型。”但是,如果我使用 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
)
【问题讨论】:
-
add_filter('upload_mimes', array('Daisy', 'daisy_mime_types'), 1, 1); --- 'Daisy' 在这里做什么?
-
你也可以粘贴 print_r(get_allowed_mime_types()) 的输出
-
确定这是一个很长的列表,我已将其添加到原始问题中。 vcf 条目是最后一个。 Daisy 也只是我的班级名称,可能应该是 $this。我通过更改 vcard 输入以使用自定义 wp 媒体窗口来推进我的项目。不幸的是,这仍然没有改变使用 wp_handle_upload 时的奇怪行为
标签: wordpress file-upload mime-types