
13.11.2007, 15:37
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Не вижу проблемы... Самое сложное - распаковать архив. Вот скрипт:
PHP код:
<?php
// JAD Descriptor generator by groundhog, 2007 (c) DaMaGeLaB
define("JAR_STORAGE_URL", "jar");
function prepeareJADFile($jarArchivePath, $manifestPath, $jarArchiveUrl) {
$zipObject = new ZipArchive;
if (!is_object($zipObject)) return false;
$ret = $zipObject->open($jarArchivePath);
if (!$ret) return false;
$manifest = $zipObject->getFromName($manifestPath);
if (!is_string($manifest) || strlen($manifest) <= 0) return false;
$manifest = trim($manifest);
$jarFileSize = filesize($jarArchivePath);
if (!$jarFileSize) return false;
$MIDletJarSize = sprintf("MIDlet-Jar-Size: %d", $jarFileSize);
$MIDletJarURL = sprintf("MIDlet-Jar-URL: %s", $jarArchiveUrl);
$jadFileContent = sprintf("%s\n%s\n%s\n", $manifest, $MIDletJarSize, $MIDletJarURL);
return $jadFileContent;
}
if (count($_FILES) <= 0) {
print("<html>");
print("<head>");
print("<title>Генератор JAD файлов</title>");
print("</head>");
print("<body>");
print("<h1>Укажите Ваш JAR файл:</h1>");
print("<form method=\"post\" enctype=\"multipart/form-data\">");
print("<input name=\"jar_file\" type=\"file\">");
print("<br><br>");
print("<input name=\"upload\" type=\"submit\" value=\"Загрузить\">");
print("</form>");
print("</body>");
print("</html>");
} else {
if (!isset($_FILES["jar_file"]) || !is_file($_FILES["jar_file"]["tmp_name"])) die ("Не могу прочитать загруженный файл");
if ($_FILES["jar_file"]["type"] != "application/java-archive") die("Неверный тип файла!");
$jadFileName = substr($_FILES["jar_file"]["name"], 0, strrpos($_FILES["jar_file"]["name"], ".")) . ".jad";
$resultUrl = "http://" . $_SERVER["HTTP_HOST"] . "/" . JAR_STORAGE_URL . "/" . $_FILES["jar_file"]["name"];
$jadContent = prepeareJADFile($_FILES["jar_file"]["tmp_name"], "META-INF/MANIFEST.MF", $resultUrl);
if (!move_uploaded_file($_FILES["jar_file"]["tmp_name"], JAR_STORAGE_URL . "/" . $_FILES["jar_file"]["name"]))
die("Не могу обработать загруженный файл!');
header("Content-Type: text/vnd.sun.j2me.app-descriptor");
header("Content-Disposition: attachment; filename=\"{$jadFileName}\"");
print($jadContent);
}
?>
Для его использования у тебя должно быть подключено ZIP-расширение для PHP - без него скрипт работать не будет, т.к. не сможет распаковать JAR. JAR - это тот же самый ZIP-архив, только структура этого архива стандартизована. Не забудь создать каталог, определяемый константой JAR_STORAGE_URL - он должен быть доступен из веб (в текущем варианте просто создай там же где лежит скрипт каталог, определяемый константой).
Последний раз редактировалось groundhog; 13.11.2007 в 15:41..
|
|
|