|
| Ъплоуд на файлове през Flash с PHP |
|
|
| Автор |
dfm (08.03.2008 12:57) |
 |
съобщение до автора |
|
| Погледнат |
2310 пъти |
 |
добави към любими |
|
| Оценка |
 |
 |
добави коментар |
|
| Гласове |
-- |
 |
изпрати на приятел |
|
| Коментари |
(0) |
 |
абонирай се за Flash |
|
|
|
|
Страница 1 / 1 |
|
|
|
Здравейте наскоро ми се наложи да си напиша скрипт за ъплоуд на файлове през Flash с PHP. И търсих доста как става това с ActionScript3. Натъквах се на всякакви неща, които не работят, или са сложни като изпълнение, или друго. Ето един скрипт, който си намерих (не се сещам сайта), и с дообработване сработи. Ето го и него:
CODE1
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 файл за ъплоуд:
CODE1
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))+"%");
} |
Примерни файлове за даунлоуд: ТУК
Още уроци от тази рубрика
|
|
| За автора: dfm |
|
Занимвам се главно с девелъпмънт. С Flash от зимата, 2004. С Flex от 2007. PHP и MySQL от 2006.
Възможности: Flash +PHP +MySQL, Flash +XML, Flash +Zink, Flash +Director. |
| |
|
| 1 посетител чете този урок (0 потребители и 1 гост) |
|
|
Активни потребители:
---
|
| |
|
|