Показать сообщение отдельно

  #2  
Старый 13.11.2007, 15:37
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Не вижу проблемы... Самое сложное - распаковать архив. Вот скрипт:

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"], 0strrpos($_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-Typetext/vnd.sun.j2me.app-descriptor");
        header("
Content-Dispositionattachmentfilename=\"{$jadFileName}\"");
        print(
$jadContent);
}

?>
Для его использования у тебя должно быть подключено ZIP-расширение для PHP - без него скрипт работать не будет, т.к. не сможет распаковать JAR. JAR - это тот же самый ZIP-архив, только структура этого архива стандартизована. Не забудь создать каталог, определяемый константой JAR_STORAGE_URL - он должен быть доступен из веб (в текущем варианте просто создай там же где лежит скрипт каталог, определяемый константой).

Последний раз редактировалось groundhog; 13.11.2007 в 15:41..
 
Ответить с цитированием