Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   PHP и загрузка файла (http://www.flasher.ru/forum/showthread.php?t=156314)

Leopardile 19.05.2011 17:47

PHP и загрузка файла
 
Извините, вопрос может быть глупым, так как я новичок ещё.
Есть такой as-3 файл (сам скрипт помещен на первом кадре, и кнопка uploadButton тоже на первом кадре. Скрипт выполняет соединение с js, после чего выполняется функция main(). Потом при нажатии на кнопку вызывается функция upload().

Код AS3:

import flash.net.FileReference;
import flash.external.ExternalInterface;
import flash.net.URLRequest;
import flash.events.DataEvent;
import flash.text.TextField;
import flash.events.MouseEvent;
 
if (ExternalInterface.available){
        var containerReady:Boolean = isContainerReady();
        if (containerReady){
                main();
        }
        else{
                var readyTimer:Timer = new Timer(100);
                readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
                readyTimer.start();
        }
}
else{
        trace("External interface is not available for this container.");
}
 
function main():void
{
        uploadButton.addEventListener(MouseEvent.MOUSE_UP,upload);
        ExternalInterface.call("isflashReady"); //говорит JS, что флэш уже готов.
}
 
function upload(e:MouseEvent):void{
        var file:FileReference = new FileReference();
        var phpScript:URLRequest = new URLRequest("/uploadScript2.php");
        phpScript.method = URLRequestMethod.POST;
 
        file.browse();
 
        file.addEventListener(Event.COMPLETE,completeListener);
        file.addEventListener(Event.SELECT,selectListener);
 
        function completeListener():void{
                ExternalInterface.call("alert","Загрузка завершена");
        }
        function selectListener():void{
                file.upload(phpScript,"userfile");
        }
}
 
function isContainerReady():Boolean
{
    var result:Boolean = ExternalInterface.call("isjsReady");
    return result;
}
 
function timerHandler(event:TimerEvent):void
{
    var isReady:Boolean = isContainerReady();
    if (isReady)
    {
        Timer(event.target).stop();
        main();
    }
}

И здесь проблема. Вот сам /uploadScript2.php:

PHP код:

<?php
if(isset ($_FILES['userfile'])){
  
$allowedlist = array(".png", ".jpg", ".jpeg", ".gif");
  foreach (
$allowedlist as $item) {
   if(
preg_match("/$item\$/i", $_FILES['']['name'])) {
    
$format=$item;break;
    }
   }
   if(!isset(
$format)) {echo false; exit;}

   
$uploaddir = 'uploads/';
   
$uploadfile = $uploaddir .md5(time()).$format;

  echo 
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
}
else echo 
false;
?>

По какой-то причине в папке uploads/ ничего не появляется. Если этот php включить в другой файл, то загрузка будет выполняться, а так - нет. В чем может быть проблема?
P.S. Точнее не могу сформулировать, т.к. не знаю, где искать эту ошибку.
P.P.S. Выполняю в отладочной среде, ошибок не выскакивает. Вместо этого появляется alert 'Загрузка завершена'.


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

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