
15.11.2007, 10:53
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
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);
}
?>
|
|
|