Просмотр полной версии : JAD генератор на php
JAD генератор на php
народ вообшем так долго сидел искал но не нашёл =(
корче помогите найти JAD генератор на php
ну вот примеры этого скрипта:http://simak.ru/jad/ и http://kycb-kycb.org.ru/makejad.php стучал им они не делютца =(
groundhog
13.11.2007, 15:37
Не вижу проблемы... Самое сложное - распаковать архив. Вот скрипт:
<?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 - он должен быть доступен из веб (в текущем варианте просто создай там же где лежит скрипт каталог, определяемый константой).
.:EnoT:.
13.11.2007, 16:01
Можно нескомный вопрос?
А это зачем надо....jad этот.....или чем-то gzip, tar.gz и т.д. не утраивает :confused:
Непонимаю...
groundhog
13.11.2007, 16:15
JAD - это не архив! Это текстовый файл, грубо говоря "описатель", сформированный по определённым правилам из содержимого манифеста JAR-архива. Некоторым мобильным терминалам этот файл требуется чтобы провести корректную установку Java-приложения.
Если тебя интересует сам генератор JAD'ов, то вот версия на VB http://dump.ru/files/n/n844109414/
.:EnoT:.
13.11.2007, 16:37
groundhog
Спасибо, понял :)
што это значит?
Parse error: parse error, unexpected T_STRING in jad.php on line 57
што это значит?
Parse error: parse error, unexpected T_STRING in jad.php on line 57
Дословный перевод: "В строке 57 неожиданная строковая переменная" :)
die("Не могу обработать загруженный файл!');
Закрой одинаковыми двойными кавычками.
скрипт заработал ну без ошибок тоесть а впри загрузке джар пишет .... Неверный тип файла!
groundhog
14.11.2007, 13:41
Cactuz, кто пишет что неверный тип файла?
AkyHa_MaTaTa
14.11.2007, 14:03
Походу тел. пишет при загруске jad файла, посмотри содержание jad файла, скорее всего там всякая фигня.
пишет скрипт =) нажимаю загрузить и он пишет неверный тип
AkyHa_MaTaTa
14.11.2007, 19:02
if ($_FILES["jar_file"]["type"] != "application/java-archive") die("Неверный тип файла!"); - либо он у тебя не признает что это application/java-archive(может апач выкаблучивается) - либо ты кидаешь не .jar файл, попробуй закоментить эту часть
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"
58 header("Content-Disposition: attachment; filename="{$jadFileName}\"");
PHP Parse error: parse error, unexpected '{' in C:\WebServers\home\test2.ru\www\NONAME6.php on line 58
нафиг там {}
вот лучше будет:
header("Content-Disposition: attachment; filename=$jadFileName");
теперь
Fatal error: Class 'ZipArchive' not found in jad.php on line 8
выложите ктонибудь нормальный рабочий скрипт =)
groundhog
15.11.2007, 10:53
Cactuz, этот скрипт написан под PHP5+ZIP. Ошибка "Неверный тип файла" вызвана тем (как правильно заметили), что ты загружаешь не JAR файл, или у твоего апача криво настроено поддерживаемые MIME-типы. Я изменил скрипт на тупую проверку расширения загружаемого файла, это должно избавить от этой ошибки. И я обратил твоё внимание на то, что для работы этого скрипта НЕОБХОДИМ МОДУЛЬ РАБОТЫ С ZIP. Модуль, если его нету в составе твоего PECL смотри тут - http://pecl.php.net/package/zip. Если ты делаешь это под Никсы, тогда пересобери пхп с опцией --enable-zip, если под Винды - просто раскоменть строчку с php_zip.dll в php.ini. Интерфейс работы с ZIP в PHP4 и PHP5 сильно разнится, поэтому если тебе нужна была реализация под PHP4 нужно было это уточнить.
<?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 ("Не могу прочитать загруженный файл");
$fileExt = strtolower(substr($_FILES["jar_file"]["name"], strrpos($_FILES["jar_file"]["name"], ".") + 1));
if ($fileExt != "jar") 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);
move_uploaded_file($_FILES["jar_file"]["tmp_name"], JAR_STORAGE_URL . "/" . $_FILES["jar_file"]["name"]);
header("Content-Type: text/vnd.sun.j2me.app-descriptor");
header("Content-Disposition: attachment; filename=\"{$jadFileName}\"");
print($jadContent);
}
?>
AkyHa_MaTaTa
15.11.2007, 11:59
Не забуть создать каталог ./jar в каталоге со скриптом, или поставь другой свой:
define("JAR_STORAGE_URL", "jar");
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot