Я пытаюсь загрузить файл APK Android, который производится php страницей. У меня есть следующее, и это работает над Firefox, но не по телефону.
Firefox загружает apk расширением, но имеет немного значка Firefox рядом с ним.
Телефон загружает файл .html расширением, почему это?
ОБНОВЛЕНИЕ: Полный источник
function display($tpl = null) {
//SETUP
$appId = JRequest::getInt('id', '0');
$model = &$this->getModel();
$app = $model->getApplication($appId);
if( !$app )
JError::raiseError(500, "Invalid Application ID");
if( empty($app->apk_file) )
JError::raiseError(500, "No APK file found in the database");
$result = $model->newDownload($appId);
//Update the database
if( !$result )
JError::raiseError(500, "Unable to increment download count for ID:".$appId);
//Return the file
$filesFolder = JPATH_COMPONENT_ADMINISTRATOR .DS. 'uploads' .DS. $appId;
//Output the file contents
$sanitizedFolder = JFolder::makeSafe($filesFolder);
$sanitizedFile = JFile::makeSafe($app->apk_file);
$path = $sanitizedFolder .DS. $sanitizedFile;
if( !JFile::exists($path) ) {
JError::raiseError(500, 'File does not exist');
}
else {
header('Content-type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="'.$sanitizedFile.'"');
readfile($path);
}
}
Ядро Fedora 10
PHP 5.2.9
Apache
Следующее отлично работает для меня на Nexus One под управлением Android 2.2, а также в Chrome:
<?php
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="Foo.apk"');
readfile('Foo.apk');
?>
Работает PHP версии 5.2.4-2ubuntu5.6.
Если вы предоставите более подробную информацию о своей настройке, мы сможем помочь больше.