Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Upload (AS+PHP) с изменением MAX_FILE_SIZE (http://www.flasher.ru/forum/showthread.php?t=98890)

AlexMik 24.07.2007 11:55

Upload (AS+PHP) с изменением MAX_FILE_SIZE
 
В AS уже не новичек... Но... Бывает и на старуху проруха :)

Суть проблемы:
Код в AS - не проблема, да и с PHP тоже все в норме, вот только мой провайдер, к сожалению, не дает возможность (читай - не хочет) изменять параметры переменной MAX_FILE_SIZE, установив ее значение в 100к.
Используя PHP uploader эту проблему обхожу на раз, а вот как завязать форму с указанной переменной и передачу параметров из AS не допру никак... Даже стыдно... :rolleyes:
Подскажите (желательно черкануть пару строк) с PHP файликом...
Перелапатил форум - ничего по этому вопросу не нашел...

Заранее благодарен.

etc 24.07.2007 13:12

Причем тут AS? Если через какой-то там аплоадер залить удается, то надо смотреть, какие он выставил там параметры для MAX_FILE_SIZE.

AlexMik 24.07.2007 13:37

Да AS тут не при чем! Я же написАл об этом... Проблема в РНР файле (upload.php) который должен установить размер передаваемого файла. Если есть идеи или мысли покажите пример РАБОТАЮЩЕГО из под SWF PHP скрипта. У меня НЕ ПОЛУЧАЕТСЯ это сделать.
2All: Господа, флейм это конечно хорошо... Но куда лучше просто несколько строк PHP файла...

Вот код самого аплодера (из хелпа собственно) с небольшой корректировкой:
Код:

import flash.net.FileReference;

var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
allTypes.push(imageTypes);

var textTypes:Object = new Object();
textTypes.description = "Text Files (*.txt, *.rtf)";
textTypes.extension = "*.txt;*.rtf";
allTypes.push(textTypes);
var listener:Object = new Object();
createTextField("text_field_name",getNextHighestDepth(),10,10,400,20);
        with (text_field_name)
        {
                multiline = false;
                selectable = false;
                text = "";
        };

listener.onSelect = function(file:FileReference):Void {
  //  trace("onSelect: " + file.name);
    if(!file.upload("http://www.test.ru/upload.php")) {
      // trace("Upload dialog failed to open.");
    }
}
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void
{
        text_field_name.text="onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal;
   
}
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse(allTypes);

Это естественно не работает.... (upload.php)
Код:

<?php
        $uploaddir = 'files/';
        if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploaddir.$_FILES['Filedata']['name']))
        {
                echo "Данные успешно добавлены в файловую базу.";
        }else
        {
                echo "НИХРЕНА!";
        }
?>

Нашел в инете на немецком форуме... но тоже не работает... (upload.php)
Код:

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="hidden" name="max_file_size" value="50000000">
    <input name="Filedata" type="file" size="20">
    <input type="submit" value="upload" name="btnupload">
</form>
<?php
if ($_REQUEST['btnupload'])
{
        $uploaddir = 'files/';
        if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploaddir.$_FILES['Filedata']['name']))
        {
                echo "Данные успешно добавлены в файловую базу.";
        }else
        {
                echo "НИХРЕНА!";
        }
}
?>


etc 24.07.2007 13:44

AlexMik, отредактируйте свой пост и оформите код тегами [code][/code].

Если это все же о php вопрос, то туда и переезжаем.

Для начала неплохо было бы привести код того самого php uploader, а не код скрипта для флеша (хотя он тоже нелишний).

Dr.OH 24.07.2007 16:23

Честно, ни разу не работал с upload'ом во флэше, но я вообще не пойму, как можно обойти переменную MAX_FILE_SIZE? Исправьте меня, если я не правильно понимаю алгоритм загрузки файла на сервер:
1. Выбираем файлик
2. файл помещается в POST-ответ клиента
3. сервер получает POST от клиента и разбирает его
(примерно тут же происходит проверка рвзмеров файла и т.п.)
4. Файл из POST помещается во временную директорию на сервере
5. скрипт php забирает его оттуда и помещает куда надо (в $uploaddir)
В каком из пунктов возникает проблема?
P.S. фишка с
Код:

<input type="hidden" name="max_file_size" value="50000000">
работает только на старых серверах с включенным register_globals. Сейчас таких серверов нет (ни разу не встречал)

etc 24.07.2007 16:43

Например, с помощью ini_set…

Dr.OH 25.07.2007 00:06

ini_set - еще один мега-редкий способ, работающий только при неправильной настройке сервера, запущенного не в защищенном режиме.

etc 25.07.2007 02:04

Ну, как бы, он в общем-то работает. Я все никак не дождусь кода того самого аплоадера, о котором говорилось в первом посте. Если он работает, то используя его код, можно поправить скрипт для флеша. Но, видимо, автору темы это уже не надо.

Dr.OH 25.07.2007 02:14

cудя по всему вот это:
Код:

<?php
        $uploaddir = 'files/';
        if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploaddir.$_FILES['Filedata']['name']))
        {
                echo "Данные успешно добавлены в файловую базу.";
        }else
        {
                echo "НИХРЕНА!";
        }
?>

собственно и есть тот самый таинственный "PHP uploader" - этот код тупо копирует в папку загруженный файл и все )

etc 25.07.2007 10:05

Да нет, этот заточен под Flash.


Часовой пояс GMT +4, время: 01:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.