JAD генератор на php народ вообшем так долго сидел искал но не нашёл =( корче помогите найти JAD генератор на php ну вот примеры этого скрипта:http://simak.ru/jad/ и http://kycb-kycb.org.ru/makejad.php стучал им они не делютца =(
Не вижу проблемы... Самое сложное - распаковать архив. Вот скрипт: 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 - он должен быть доступен из веб (в текущем варианте просто создай там же где лежит скрипт каталог, определяемый константой).
Можно нескомный вопрос? А это зачем надо....jad этот.....или чем-то gzip, tar.gz и т.д. не утраивает Непонимаю...
JAD - это не архив! Это текстовый файл, грубо говоря "описатель", сформированный по определённым правилам из содержимого манифеста JAR-архива. Некоторым мобильным терминалам этот файл требуется чтобы провести корректную установку Java-приложения.
Дословный перевод: "В строке 57 неожиданная строковая переменная" PHP: die("Не могу обработать загруженный файл!'); Закрой одинаковыми двойными кавычками.
Походу тел. пишет при загруске jad файла, посмотри содержание jad файла, скорее всего там всякая фигня.
if ($_FILES["jar_file"]["type"] != "application/java-archive") die("Неверный тип файла!"); - либо он у тебя не признает что это application/java-archive(может апач выкаблучивается) - либо ты кидаешь не .jar файл, попробуй закоментить эту часть PHP: 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 выложите ктонибудь нормальный рабочий скрипт =)
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: <?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); } ?>
Не забуть создать каталог ./jar в каталоге со скриптом, или поставь другой свой: define("JAR_STORAGE_URL", "jar");