Browse Source

Add APK mimetype repair scenario.

tags/v8.0.0alpha1
Normal Ra 10 years ago
parent
commit
38498af171
1 changed files with 42 additions and 0 deletions
  1. 42
    0
      lib/repair/repairmimetypes.php

+ 42
- 0
lib/repair/repairmimetypes.php View File

@@ -113,6 +113,44 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
}
}

private function fixAPKMimeType() {
$existsStmt = \OC_DB::prepare('
SELECT count(`mimetype`)
FROM `*PREFIX*mimetypes`
WHERE `mimetype` = ?
');

$insertStmt = \OC_DB::prepare('
INSERT INTO `*PREFIX*mimetypes` ( `mimetype` )
VALUES ( ? )
');


$updateByNameStmt = \OC_DB::prepare('
UPDATE `*PREFIX*filecache`
SET `mimetype` = (
SELECT `id`
FROM `*PREFIX*mimetypes`
WHERE `mimetype` = ?
) WHERE `name` LIKE ?
');


$mimeTypeExtension = 'apk';
$mimeTypeName = 'application/vnd.android.package-archive';

$result = \OC_DB::executeAudited($existsStmt, array($mimeTypeName));
$exists = $result->fetchOne();

if ( ! $exists ) {
// insert mimetype
\OC_DB::executeAudited($insertStmt, array($mimeTypeName));
}

// change mimetype for files with x extension
\OC_DB::executeAudited($updateByNameStmt, array($mimeTypeName, '%.'.$mimeTypeExtension));
}

/**
* Fix mime types
*/
@@ -120,6 +158,10 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
if ($this->fixOfficeMimeTypes()) {
$this->emit('\OC\Repair', 'info', array('Fixed office mime types'));
}

if ($this->fixAPKMimeType()) {
$this->emit('\OC\Repair', 'info', array('Fixed APK mime type'));
}
}
}


Loading…
Cancel
Save