Incompatible with Apple Devices

I’ve set up code to allow users to purchase mp3 files. I keep the files in a non web-accessible directory and use a script that verifies that the user is logged in and has purchased the file before it lets them download it. Once the user has been validated it outputs the header specifying a file transfer and sends the file.

The problem is that iPhone and iPad users are complaining that their devices won’t download the file. It works for everybody else.

Is there a fix for this? Some alternate way of doing this that would work on an Apple mobile device?

This is the relevant part of the code

[php]if(file_exists($path))
{
header(“Pragma: public”);
header(“Expires: 0”);
header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”);
header(“Cache-Control: public”);
header(“Content-Description: File Transfer”);
header(“Content-Type: " . $mm_type);
header(“Content-Length: " .(string)(filesize($path)) );
header('Content-Disposition: attachment; filename=”’.basename($path).’”’);
header(“Content-Transfer-Encoding: binary\n”);

readfile($path); // outputs the content of the file

}[/php]

You can’t download files directly using the iphone/ipad. The only way to get MP3s is to download from the iTunes store or to sync with your iTunes library.

For iPad/iPhone offer an email attachment option. You can then mail the mp3 to them and when they open the email in the iPad they can then choose what to do with it.

Will iPods and iPads open m4a’s automatically or do they also have the same problem?

Exactly the same problem, it is a design of the OS, you have to use iTunes or email attachments to open / install items like this other than from the itunes store. Jailbreaking or other third party filemanagement apps overcome some of this but you can’t guarantee that your users will have those available.

Sponsor our Newsletter | Privacy Policy | Terms of Service