Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Может ли пхп узнать тип файла? (http://www.flasher.ru/forum/showthread.php?t=109178)

MrAngel 09.03.2008 17:54

Может ли пхп узнать тип файла?
 
Здравствуйте! Решил вот вместо штмл сделать флеш форму для загрузки файлов, код вот здесь:
Код:

package {
        import flash.display.Sprite;
        import flash.net.*;
        import flash.events.*;
        import flash.system.*;
        public class ExampleApplication extends Sprite
        {
                public function ExampleApplication()
                {
                        //Security.allowDomain("http://localhost/");
                        var canDwnld = false;
                        loadFileProBar.mode = "manual";

                        function onSelectFile()
                        {
                                var mytexts = fileReference.name;
                                if(!canDwnld)
                                {
                                        canDwnld = true;
                                }
                                //trace(mytexts);
                                swtText.text = mytexts;
                        }
                        function onSDButtonClick()
                        {
                                fileReference.browse([fileFilter]);
                        }
                        function onStartDwnld()
                        {
                                if(canDwnld)
                                {                                       
                                        fileReference.upload(urlRequest, "uploadfile");                               
                                }
                        }                       
                        function onFileComplete()
                        {
                                loadFileProBar.mode = "manual";
                        }                       
                        var urlRequest:URLRequest = new URLRequest("upload.php"); // http://localhost/sait_zn/upload.php
                        var fileReference:FileReference = new FileReference();
                        fileReference.addEventListener(Event.SELECT, onSelectFile);
                        selectDwnldButton.addEventListener(MouseEvent.CLICK, onSDButtonClick);
                        startDwnldButton.addEventListener(MouseEvent.CLICK, onStartDwnld);
                        fileReference.addEventListener(ProgressEvent.PROGRESS, onFileProgress);
                        fileReference.addEventListener(Event.COMPLETE, onFileComplete);
                        var fileFilter:FileFilter = new FileFilter("Images", "*.png; *.gif; *.jpg");
                        //fileReference.browse([fileFilter]);
                }

                private function onFileProgress(event:ProgressEvent):void
                {
                        loadFileProBar.mode = "event";
                        FileProgressField.text = event.bytesLoaded + " из " + event.bytesTotal + " байтов";
                }
        }       
}

Так вот, обычная форма кроме имени файла посылает пхп скрипту еще и его тип(который можно узнать например отсюда: $_FILES['uploadfile']['type']), а как на счет флеш? Можно ли узнать тип файла если запрос на его upload был послан из флеша?
P.S. Если качать при помощи флеш формы, то в $_FILES['uploadfile']['type'] записывается значение application/octet-stream.

Mirk. 12.09.2009 20:26

меня интересует этот же вопрос =)
мб кто-нибудь поможет?
заранее спс =)

$mival 12.09.2009 20:56

а расширение смотреть не подходит?

Mirk. 12.09.2009 21:27

можно конечно, но не безопасно, его подделать проще чем Content-Type.

flash33 12.09.2009 21:29

Только анализируя заголовок файла в байтаррей, но по расширению проще, хотя расширение можно изменить. По крайней мере узнать что jpg, png и gif а не что то другое можно по любому

wvxvw 12.09.2009 21:50

Для картинок:
http://il2.php.net/manual/en/functio...-mime-type.php

Mirk. 13.09.2009 01:28

Цитата:

Сообщение от flash33 (Сообщение 850324)
Только анализируя заголовок файла в байтаррей, но по расширению проще, хотя расширение можно изменить. По крайней мере узнать что jpg, png и gif а не что то другое можно по любому

Вот именно по заголовку и хотелось бы определить. Опишите пожалуйста как это сделать, если реализуемо конечно =)

Цитата:

Сообщение от wvxvw (Сообщение 850330)

ммм, ну я полагал что флеш и выдасть мне как mime-type. Если я не правильно понял мысль, плз объясните

wvxvw 13.09.2009 04:13

А какой смысл проверять то, что пишется в заголовок запроса? Вам все равно нужно проверять содержание, а не заголовок, в заголовок можно написать что угодно... Если вам это нужно отправлять на сервер, то, из соображений безопасности нет смысла делать проверки на клиенте т.как они в полпинка обходятся...

flash33 13.09.2009 11:25

Заголовок файла, wvxvw, а не запроса :) Но подделать можно что хочешь, тут Вы правы
Mirk. Есть спецификации файлов, где описана их структура и заголовки. Ковыряйте сами, если хотите

wvxvw 13.09.2009 13:15

Цитата:

Сообщение от flash33 (Сообщение 850411)
Заголовок файла, wvxvw, а не запроса :) Но подделать можно что хочешь, тут Вы правы
Mirk. Есть спецификации файлов, где описана их структура и заголовки. Ковыряйте сами, если хотите

Флеш ничего не пишет в файл... только в запрос, не хватало еще чтобы флеш изменял файлы на клиенте перед отсылкой... об этом как раз и речь, что когда флеш формирует запрос multipart-form-data или как он там называется, то вместо того, чтобы писать mimeType image/jpeg например для JPEG'ов, он пишет application/octet-stream.


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

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