Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.11.2010, 23:23
LiStopaD вне форума Посмотреть профиль Отправить личное сообщение для LiStopaD Найти все сообщения от LiStopaD
  № 1  
Ответить с цитированием
LiStopaD

Регистрация: Mar 2009
Сообщений: 31
По умолчанию Загрузчик файлов с прелоадером

Всем доброго времени суток, форумчане! Подскажите, пожалуйста, как сделать загрузчик файлов с прелоадером. Как например на яндекс народе, когда загружаешь файлы на сервак.

Старый 02.11.2010, 10:42
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если нужен аплоадер, смотрите в хелпе примеры для класса FileReference.
Если при этом нужен индикатор прогресса, используйте событие onProgress (в примере есть).
__________________
Идите первым!


Последний раз редактировалось mooncar; 02.11.2010 в 10:44.
Старый 10.01.2011, 00:35
LiStopaD вне форума Посмотреть профиль Отправить личное сообщение для LiStopaD Найти все сообщения от LiStopaD
  № 3  
Ответить с цитированием
LiStopaD

Регистрация: Mar 2009
Сообщений: 31
Посмотрел в хелпе пример. У меня пока возник вопрос по этой строке кода
Код AS1/AS2:
if(!file.upload("http://www.yourdomain.com/yourUploadHandlerScript.cfm")) {
        trace("Upload dialog failed to open.");
    }
Можете разъяснить какокого вида должен быть файл на стороне сервака?

Старый 10.01.2011, 00:56
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. Почитайте, например это, пропуская все про форму*, и начиная с суперглобального массива $_FILES.

2. Разновидности принимающего скрипта зависят от того, что делать с залитым файлом.
3. Например, скрипт с рабочего проекта
PHP код:
<?php
$stend 
$_GET['stend'];
$folder '../../catalogdata/items/fotomain/';

if(isset(
$_FILES['file']) && $_FILES['file']['error']===0)
{
    
copy($_FILES['file']['tmp_name'], $folder.'/'.$stend.'.jpg');
}
?>
Тут, помимо файла, принимаются еще доп. GET-данные в переменную $stend (чтобы узнать, куда копировать после принятия).
И далее, помещаем полученный файл в директорию $folder, задавая ему имя $stend.

Или
PHP код:
<?php
$stend 
$_GET['stend'];
$folder '../../catalogdata/items/foto/';

if(isset(
$_FILES['file']) && $_FILES['file']['error']===0)
{
    
$fullfolder $folder.$stend;
    if (!
opendir($fullfolder)) 
    {
        
mkdir($folder.$stend0770);
    }
    
copy($_FILES['file']['tmp_name'], $fullfolder.'/temp.jpg');
}
?>
А тут предварительно проверяем, есть ли некая директория. Если нет, создаем, и помещаем туда полученный файл под именем temp.jpg.

Но это частные случаи, просто под рукой были. Вообще, иногда сохраняют исходное имя полученного файла, когда копируют из временного файла (т.е. того, в который сервер изначально получает файл - нечто с неудобоваримым названием и во временной директории хостинга) в файл с "родным" именем и куда нужно.
Т.е. все зависит от (2).
----------
* Аплоадеры на флеше "втихую" используются во всякого рода CMS-ках, так как флеш позволяет заливать на сервер файлы, минуя перезагрузку страницы, что требуется, если заливать на сервер файл с помощью HTML-формы.

PS. Вопрос вообще-то не в эту ветку, если будут дальнейшие вопросы, то лучше создать нужную тему в "Серверных технологиях".
__________________
Идите первым!


Последний раз редактировалось mooncar; 10.01.2011 в 01:16.
Старый 10.01.2011, 02:04
LiStopaD вне форума Посмотреть профиль Отправить личное сообщение для LiStopaD Найти все сообщения от LiStopaD
  № 5  
Ответить с цитированием
LiStopaD

Регистрация: Mar 2009
Сообщений: 31
Спасибо большое! Буду пробовать.

Добавлено через 68 часов 14 минут
Блин, что-то не хочет работать
Вот код кода во флеше (все из хелпа взял)
Код AS1/AS2:
import flash.net.FileReferenceList;
import flash.net.FileReference;
 
var listener:Object = new Object();
 
listener.onSelect = function(fileRefList:FileReferenceList) {
    //trace("onSelect");
    var list:Array = fileRefList.fileList;
    var item:FileReference;
    for(var i:Number = 0; i < list.length; i++) {
        item = list[i];
        //trace("name: " + item.name);
        //trace(item.addListener(this));
        item.upload("http://www.wer.ru/saveFile.php");
    }
}
 
listener.onCancel = function():Void {
    //trace("onCancel");
}
 
listener.onOpen = function(file:FileReference):Void {
    //trace("onOpen: " + file.name);
}
 
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
    //trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}
 
listener.onComplete = function(file:FileReference):Void {
    //trace("onComplete: " + file.name);
	qwer = "dduud";
 
}
 
listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
    //trace("onHTTPError: " + file.name + " httpError: " + httpError);
}
 
listener.onIOError = function(file:FileReference):Void {
    //trace("onIOError: " + file.name);
}
 
listener.onSecurityError = function(file:FileReference, errorString:String):Void {
    //trace("onSecurityError: " + file.name + " errorString: " + errorString);
}
 
var fileRef:FileReferenceList = new FileReferenceList();
fileRef.addListener(listener);
fileRef.browse();
Вот код на пхп
PHP код:
<?php 
$stend 
$_GET['name']; 
//$folder = ''; 

if(isset($_FILES['file']) && $_FILES['file']['error']===0

    
copy($_FILES['file']['tmp_name'], $stend.'.jpg'); 

echo 
$stend;
?>
Работаю с локальным серваком. Вставил флешку в страницу, гружу ее и никакого ответа... Флешка не запускается, а при тестировании ролика во флеше окно загрузки работает нормально. В чем косяк может быть?

Добавлено через 68 часов 27 минут
Поставил обработчик события, флешка открывает окно загрузки, а пхп не хватает почему-то файлы.


Последний раз редактировалось LiStopaD; 13.01.2011 в 00:38.
Старый 04.04.2011, 14:09
JeStas вне форума Посмотреть профиль Отправить личное сообщение для JeStas Найти все сообщения от JeStas
  № 6  
Ответить с цитированием
JeStas

Регистрация: Mar 2011
Сообщений: 5
1.Как вы определили, хватает php файлы или нет?
2.В том же help.adobe.com написано, что по умолчанию в массив $_GET (или $_POST) файл FileReference.upload() передает в переменную $_REQUEST['Filedata'], ели вы не задаете его во втором параметре вызова функции unload...
3.Зачем echo - вы все равно не отлавливаете ответ от сервера?
Я использую следующий скрипт (самописный):
PHP код:
$file_name md5(uniqid(mt_rand(), true)); //Генерируем имя файла
function imageresize ($outfile,$infile,$new_max,$quality//Функция изменения геометрических размеров картинки 
    
{
        
$img getimagesize ($infile);
        
$w_img $img[0];
        
$h_img $img[1];
        
$index_img $w_img/$h_img;
        if (
$index_img 1) {$neww $new_max;
                            
$newh $new_max/$index_img;}
            elseif (
$index_img 1) {$newh $new_max;
                                    
$neww $new_max*$index_img;}
                    else {
$newh $new_max;
                            
$newh $new_max;} 
        switch(
$img[2]) {
        case 
1:
        
$im imagecreatefromgif($infile);
        break;
        case 
2:
        
$im imagecreatefromjpeg($infile);
        break;
        default: 
$im imagecreatefrompng($infile);
        break;}

    
$im_tmp imagecreatetruecolor($neww,$newh);
    
imagecopyresampled($im_tmp,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));
    
imagejpeg($im_tmp,$outfile,$quality);
    
imagedestroy($im);
    
imagedestroy($im_tmp);
    }
    
$uploaddir_tmp =_IMAGE_TMP_//Временная папка
      
$uploaddir _IMAGE_LOAD_//папка для хранения картинок
      
$uploaddir_thm =_IMAGE_LOAD_TMB_//папка для хранения их уменьшенных изображений "тумбалсов"
    
$ext strtolower(array_pop(explode("."$_FILES['Filedata']['name']))); //Хватаем расширение
    
$uploadfile_tmp $uploaddir_tmp .$file_name.".".$ext;  //полное имя временного файла"
     
$uploadfile $uploaddir .$file_name.".".$ext//полное имя файла картинки
      
$uploadfile_thm $uploaddir_thm .$file_name.".".$ext//полное имя файла  "тумбалса"
    
    

  
if (move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadfile_tmp)) {
      
imageresize($uploadfile,$uploadfile_tmp,_IMAGE_MAX_SIZE_,_IMAGE_QUALITY_); //формирование картинки
      
imageresize($uploadfile_thm,$uploadfile_tmp,_IMAGE_TMB_MAX_SIZE_,_IMAGE_QUALITY_); //формирование  "тумбалса"
   
SaveImage($file_name.".".$ext$image_mode);
  } else {
   echo 
"File uploading failed.\n";  //на всякий пожарный!!! для тестирования из php и перехвата через URLRequest
  



Последний раз редактировалось JeStas; 04.04.2011 в 14:21.
Старый 05.04.2011, 12:10
LiStopaD вне форума Посмотреть профиль Отправить личное сообщение для LiStopaD Найти все сообщения от LiStopaD
  № 7  
Ответить с цитированием
LiStopaD

Регистрация: Mar 2009
Сообщений: 31
Все, заработало. Файл сохраняется. Спасибо!! Теперь пытаюсь замктить фильтр на открываемые файлы и датчик на загрузку файла)))

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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