як завантажувати та дозволяти завантаження форматів


10

У мене є товари, які можна завантажити.

Я створив власні метаполя для зберігання потрібних мені файлів, це дозволяє мені завантажувати файли у власні мета - .doc та .pdf-файли ...

Однак, коли я намагаюся завантажувати фотографію та .epub - файли не завантажують ...

Я підозрюю, що під час спроби перейти за посиланням для завантаження файлів також буду виникати проблеми - але я перетну цей міст, коли прийду до нього.

Будь-яка допомога з цього приводу була б фантастичною.

Відповіді:


10

Якщо припустити, що ви використовуєте завантажувач нативної медіа WordPress, то ви можете використовувати upload_mimesгачок фільтра, щоб додати або видалити дозволені типи файлів, наприклад:

function custom_myme_types($mime_types){

    //Adding avi extension
    $mime_types['avi'] = 'video/avi'; 

    //Removing the pdf extension
    unset($mime_types['pdf']); 

    return $mime_types;
}

add_filter('upload_mimes', 'custom_myme_types', 1, 1);

Ви можете бачити, що для додавання типу файлу ви просто додаєте до масиву з розширенням файлу як ключем та типом mime як значення, виконайте тип MIME для файлу application/x-mobipocket-ebookформату.application/epub+zip


5
Також я хотів би додати відповідь Bainternet в тому, що якщо ви, наприклад, використовуєте Apache, він може не знати про розширення файлів тук / .epub та їх відповідні типи mime. Якщо у вас не знайдено файл при спробі переглянути файл, можливо, вам доведеться додати типи mime на сервер. Для Apache ви можете це зробити, використовуючи файл htaccess і додати щось подібне:AddType application/x-shockwave-flash swf
Скотт

Дякую, я спробував додати вищезазначений код до моєї теми function.php, і він починає говорити, що заголовки вже надіслані. Я використовую Apache, і я вже доповнив файл .htaccess.
Майкл Стотт

Я кажу брехню, я, здається, у мене це працює. Відмінно.
Майкл Стотт

Радий, що ви працювали
Bainternet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.