10

I have downloadable products for sale.

I have created custom meta boxes to hold the file data I need, it allows me to upload fine to the custom meta the .doc and the .pdf files...

However when I try and upload a .mobi and a .epub - it doesn't upload the files...

I suspect I will also hit issues when I try and follow the download link to download the files also - but I will cross that bridge when I come to it.

Any help on this would be fantastic.

10

Assuming that you are using the WordPress native Media uploader then you can use the upload_mimes filter hook to add or remove allowed file types, for example:

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);

You can see that to add a file type you just add to the array with the file extension as the key and the mime type as the value do the MIME type for .mobi format file is application/x-mobipocket-ebook and for .epub format is application/epub+zip

  • 5
    Also I'd like to add to Bainternet's answer is that if you are using Apache for example it might not know about the file extensions .mobi/.epub and their corresponding mime types. If you get a file not found when trying to view the file you may need to add the mime types to the server. For Apache you can do this using your htaccess file and add something like this: AddType application/x-shockwave-flash swf – Brady Feb 17 '12 at 12:07
  • Thanks, I've tried adding the above code to my theme functions.php and it starts saying headers are already sent. I am using Apache and I've already amended my .htaccess file. – Michael Stott Feb 17 '12 at 12:17
  • I tell a lie, I appear to have got it working. Excellent. – Michael Stott Feb 17 '12 at 12:33
  • Glad you got it working – Bainternet Feb 17 '12 at 14:42

protected by fuxia Jan 22 '17 at 11:52

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.