Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Ъплоуд на файлове през Flash с PHP
  1. Ъплоуд на файлове през Flash с PHP
dfm
     
Автор  dfm (08.03.2008 12:57)  съобщение до автора
Погледнат  2310 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за Flash
    Страница 1 / 1

 



Здравейте наскоро ми се наложи да си напиша скрипт за ъплоуд на файлове през Flash с PHP. И търсих доста как става това с ActionScript3. Натъквах се на всякакви неща, които не работят, или са сложни като изпълнение, или друго. Ето един скрипт, който си намерих (не се сещам сайта), и с дообработване сработи. Ето го и него:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$destination_dir = '/upload/file/destination';

if (isset ($_FILES['Filedata'])
        &&
is_array($_FILES['Filedata'])
        &&
isset (    $_FILES['Filedata']['tmp_name'],
                   
$_FILES['Filedata']['name'],
                   
$_FILES['Filedata']['size'],
                   
$_FILES['Filedata']['error'])
        &&
intVal($_FILES['Filedata']['error']) === 0) {
           
   
$pictureName = setFileName($_FILES['Filedata']['name']);
   
if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $destination_dir . '/' . $pictureName)) {
       
$result = "
              Date:
" . date('Y-m-d H:i:s') . "
              File: {
$_FILES['Filedata']['name']}
              Size: {
$_FILES['Filedata']['size']}
              Successfull uploaded.
";
   
}
   
else {
       
$result = "
              Date:
" . date('Y-m-d H:i:s') . "
              File: {
$_FILES['Filedata']['name']}
              Size: {
$_FILES['Filedata']['size']}
              Error: {
$_FILES['Filedata']['error']}
              Unable to move file.
";
   
}
   
if (@ $fp = fopen($destination_dir . '/upload.txt', 'w')) {
       
fwrite($fp, $result);
       
fclose($fp);
   
}
}


//
setImageName
function setFileName
($name) {
   
return date("[Y-m-d][H-i-s]_") . $name;
}
?>

Хубавото е, че ви прави upload.txt, и изписва какво е станало с файла. Функцията setFileName я ползвам за да се подсигуря, че няма еднакви файлови имена :)

Ето и примерен AS3 скрипт, с който ползвам този .php файл за ъплоуд:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var pathToUploadPHPFile:String = "upload.php";
var _uploadPop:FileReference = new FileReference();

upload_mc.addEventListener(MouseEvent.MOUSE_DOWN, upload);
upload_mc.addEventListener(MouseEvent.MOUSE_OVER, upload_show);
upload_mc.addEventListener(MouseEvent.MOUSE_OUT, upload_show);

function upload(info:MouseEvent):void {
   
info.target.gotoAndStop("selected");
    //могат да се добавят филтри при селектиране на файлове
   
var uploadImageFilter:FileFilter = new FileFilter("Images (*.jpg, *.jpeg)", "*.jpg;*.jpeg");

   
_uploadPop.browse(new Array(uploadImageFilter));
    ///Изпраща събитие, когато потребителя селектира файл за ъплоуд, които потребителя е избрал от диалогивия прозорец
   
_uploadPop.addEventListener(Event.SELECT, selectedUploadFile);
    ///Изпраща събитие, когато информацията е получена
oт сървъра след успешен ъплоуд
   
_uploadPop.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, completeUploadFile);
   
_uploadPop.addEventListener(Event.COMPLETE, completeUploadFile);
    ///Изпраща събития периодично по време на ъплоудването.
   
_uploadPop.addEventListener(ProgressEvent.PROGRESS, progressUploadFile);
}

function upload_show(info:MouseEvent):void {
   
if (info.type == MouseEvent.MOUSE_OVER) {
       
info.target.gotoAndStop("over");
   
} else {
       
info.target.gotoAndStop("normal");
   
}
}

function selectedUploadFile(info:Event):void {
   
_uploadPop.upload(new URLRequest(pathToUploadPHPFile));
}

function completeUploadFile(info):void {
   
trace("file is upload complited");
}

function progressUploadFile(info:ProgressEvent):void {
   
var file:FileReference = FileReference(info.target);
   
trace("uploading file: name=" + file.name + "  status: "+int(info.bytesLoaded /(info.bytesTotal/100))+"%");
}

Примерни файлове за даунлоуд: ТУК



   


Ключови думи: ъплоуд файл flash PHP upload ъплоуд на файл


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: dfm  
Занимвам се главно с девелъпмънт. С Flash от зимата, 2004. С Flex от 2007. PHP и MySQL от 2006. Възможности: Flash +PHP +MySQL, Flash +XML, Flash +Zink, Flash +Director.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008