Evgan
30.12.2008, 02:24
приветствую
По ссылке http://www.flashforum.ru/index.php?showtopic=192&pid=1331&mode=threaded&start=#entry1331 , любезно предоставленноей Denis Doroshko, спасибо ему за это огромное, предлажили пример (файл прикреплён) закачки картинок на сервер, в котором код AS предлагают заменить (по ссылки вы это сможите увидеть) на нижеприведённый :
код AS_______________________________________
import flash.net.FileReference;
var listener:Object = new Object();
listener.onSelect = function(selectedFile:FileReference):Void {
statusArea.text += "Попытка загрузки " + selectedFile.name + "\n";
// место нахождеие твоего php файла
selectedFile.upload("uploadFile.php");
};
listener.onOpen = function(selectedFile:FileReference):Void {
statusArea.text += "Открытие " + selectedFile.name + "\n";
};
listener.onComplete = function(selectedFile:FileReference):Void {
statusArea.text += "Загружается " + selectedFile.name + " в флэшку\n";
imagesCb.addItem(selectedFile.name);
imagesCb.selectedIndex = imagesCb.length - 1;
downloadImage();
};
var imageFile:FileReference = new FileReference();
imageFile.addListener(listener);
uploadBtn.addEventListener("click", uploadImage);
imagesCb.addEventListener("change", downloadImage);
imagePane.addEventListener("complete", imageDownloaded);
function imageDownloaded(event:Object):Void {
if(event.total == -1) {
imagePane.contentPath = "Message";
}
}
function downloadImage(event:Object):Void {
imagePane.contentPath = "images/" + imagesCb.value;
}
// показывает тип вайлов которые можно загружать
function uploadImage(event:Object):Void {
imageFile.browse([{description: "Катринки", extension: "*.jpg;*.gif;*.png"}]);
}
________________________________________
конешне же и код php придложили следующий:
код PHP______________________________________
<?php
$MAXIMUM_FILESIZE = 1024 * 200; // 200KB
$MAXIMUM_FILE_COUNT = 10; // keep maximum 10 files on server
echo exif_imagetype($_FILES['Filedata']);
if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) {
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$type = exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
if ($type == 1 || $type == 2 || $type == 3) {
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
} else {
unlink("./temporary/".$_FILES['Filedata']['name']);
}
}
$directory = opendir('./images/');
$files = array();
while ($file = readdir($directory)) {
array_push($files, array('./images/'.$file, filectime('./images/'.$file)));
}
usort($files, sorter);
if (count($files) > $MAXIMUM_FILE_COUNT) {
$files_to_delete = array_splice($files, 0, count($files) - $MAXIMUM_FILE_COUNT);
for ($i = 0; $i < count($files_to_delete); $i++) {
unlink($files_to_delete[$i][0]);
}
}
print_r($files);
closedir($directory);
function sorter($a, $b) {
if ($a[1] == $b[1]) {
return 0;
} else {
return ($a[1] < $b[1]) ? -1 : 1;
}
}
?>
_________________________________________
теберь ближе к делу: НЕ РАБОТАЕТ!!! +(
с AS всё вроде бы разобрался и понят: строкой selectedFile.upload("uploadFile.php") вызываем код php c одновременной передачей ему информации о выбранном файле, которая в php заносится в супер пуперский массив $_FILES.
НО с PHP не так всё понятно, хоть похожей штукой имел дело, правда в том случаи из html вызывался php, но там у меня всё получилось и работает (каму интересно, в архиве исходники), а именно, вызывают подозрения правельности написания и надобности указывания места для файлов на сервере: "./temporary/" и "./images/" ( в строках где в конце я восклицательные знаки наставил+)), да и вся это систма move_uploaded_file с последующим rename (всё теже строки с !!!!!!!!!! ) вызывает подозрение, так как в том же примере с HTML достаточно одной строчки простой и локаничной :
copy($_FILES["$cc1"]["tmp_name"],"666.JPG"), что бы закачиваемый файл оказался в коталоге, откудо php вызывается,и имел имя 666.
В ОТСУСТВИИ ТОЛКОЙ ЛИТЕРАТУРЫ, МНЕБЫ БЫЛО БЫ НАМНОГО УДОБНЕЕ РАЗБИРАТЬСЯ С ЭТОЙ ВЕЩЬЮ ЕСЛИ БЫ ИСХОДНИК БЫЛ РАБОЧИЙ+(
если кто им может одарить, то буду весьма благодарен.
спасибо за внемание+)
По ссылке http://www.flashforum.ru/index.php?showtopic=192&pid=1331&mode=threaded&start=#entry1331 , любезно предоставленноей Denis Doroshko, спасибо ему за это огромное, предлажили пример (файл прикреплён) закачки картинок на сервер, в котором код AS предлагают заменить (по ссылки вы это сможите увидеть) на нижеприведённый :
код AS_______________________________________
import flash.net.FileReference;
var listener:Object = new Object();
listener.onSelect = function(selectedFile:FileReference):Void {
statusArea.text += "Попытка загрузки " + selectedFile.name + "\n";
// место нахождеие твоего php файла
selectedFile.upload("uploadFile.php");
};
listener.onOpen = function(selectedFile:FileReference):Void {
statusArea.text += "Открытие " + selectedFile.name + "\n";
};
listener.onComplete = function(selectedFile:FileReference):Void {
statusArea.text += "Загружается " + selectedFile.name + " в флэшку\n";
imagesCb.addItem(selectedFile.name);
imagesCb.selectedIndex = imagesCb.length - 1;
downloadImage();
};
var imageFile:FileReference = new FileReference();
imageFile.addListener(listener);
uploadBtn.addEventListener("click", uploadImage);
imagesCb.addEventListener("change", downloadImage);
imagePane.addEventListener("complete", imageDownloaded);
function imageDownloaded(event:Object):Void {
if(event.total == -1) {
imagePane.contentPath = "Message";
}
}
function downloadImage(event:Object):Void {
imagePane.contentPath = "images/" + imagesCb.value;
}
// показывает тип вайлов которые можно загружать
function uploadImage(event:Object):Void {
imageFile.browse([{description: "Катринки", extension: "*.jpg;*.gif;*.png"}]);
}
________________________________________
конешне же и код php придложили следующий:
код PHP______________________________________
<?php
$MAXIMUM_FILESIZE = 1024 * 200; // 200KB
$MAXIMUM_FILE_COUNT = 10; // keep maximum 10 files on server
echo exif_imagetype($_FILES['Filedata']);
if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) {
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$type = exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
if ($type == 1 || $type == 2 || $type == 3) {
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
} else {
unlink("./temporary/".$_FILES['Filedata']['name']);
}
}
$directory = opendir('./images/');
$files = array();
while ($file = readdir($directory)) {
array_push($files, array('./images/'.$file, filectime('./images/'.$file)));
}
usort($files, sorter);
if (count($files) > $MAXIMUM_FILE_COUNT) {
$files_to_delete = array_splice($files, 0, count($files) - $MAXIMUM_FILE_COUNT);
for ($i = 0; $i < count($files_to_delete); $i++) {
unlink($files_to_delete[$i][0]);
}
}
print_r($files);
closedir($directory);
function sorter($a, $b) {
if ($a[1] == $b[1]) {
return 0;
} else {
return ($a[1] < $b[1]) ? -1 : 1;
}
}
?>
_________________________________________
теберь ближе к делу: НЕ РАБОТАЕТ!!! +(
с AS всё вроде бы разобрался и понят: строкой selectedFile.upload("uploadFile.php") вызываем код php c одновременной передачей ему информации о выбранном файле, которая в php заносится в супер пуперский массив $_FILES.
НО с PHP не так всё понятно, хоть похожей штукой имел дело, правда в том случаи из html вызывался php, но там у меня всё получилось и работает (каму интересно, в архиве исходники), а именно, вызывают подозрения правельности написания и надобности указывания места для файлов на сервере: "./temporary/" и "./images/" ( в строках где в конце я восклицательные знаки наставил+)), да и вся это систма move_uploaded_file с последующим rename (всё теже строки с !!!!!!!!!! ) вызывает подозрение, так как в том же примере с HTML достаточно одной строчки простой и локаничной :
copy($_FILES["$cc1"]["tmp_name"],"666.JPG"), что бы закачиваемый файл оказался в коталоге, откудо php вызывается,и имел имя 666.
В ОТСУСТВИИ ТОЛКОЙ ЛИТЕРАТУРЫ, МНЕБЫ БЫЛО БЫ НАМНОГО УДОБНЕЕ РАЗБИРАТЬСЯ С ЭТОЙ ВЕЩЬЮ ЕСЛИ БЫ ИСХОДНИК БЫЛ РАБОЧИЙ+(
если кто им может одарить, то буду весьма благодарен.
спасибо за внемание+)