设为首页 收藏本站
查看: 1084|回复: 0

[经验分享] flash+php实现图片上传

[复制链接]

尚未签到

发表于 2015-8-23 15:13:05 | 显示全部楼层 |阅读模式
  
  

  实现flash+php图片上传,两者各有分工:
  flash负责打开browser,浏览我的电脑;
  这里我们需要的flash方法有:
1.FileReference或者FileReferenceList类,负责浏览我的电脑,两者区别是,前者每次可以选择一个文件
  而后者可以每次选择多个文件;
  
flash.net
public class FileReference
继承FileReference -> EventDispatcher -> Object

  
  
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

  
  
  
  FileReference 类提供了在用户计算机和服务器之间上载和下载文件的方法。 操作系统对话框会提示用户选择要上载的文件或用于下载的位置。 每个 FileReference 对象都引用用户磁盘上的一个文件并且具有一些属性,这些属性包含有关文件大小、类型、名称、创建日期、修改日期和创建者类型(仅限 Macintosh)的信息。
  
2.打开之后,我们可以使用FileFilter来限制选择文件的格式;
  
flash.net
public final class FileFilter
继承FileFilter-> Object

  
  
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

  
  
  
  FileFilter 类用来指示在调用 FileReference.browse() 或 FileReferenceList.browse() 时,用户系统上的哪些文件显示在出现的文件浏览对话框中。 FileFilter 实例将被传递给 browse() 函数。 如果使用 FileFilter 实例,则 FileFilter 实例中未指定的扩展名和文件类型将被过滤掉,即用户在上载时无法选择这些类型。 如果未将 FileFilter 对象传递给 browse(),则对话框中将显示所有文件。
3.这些就够了
  
  php负责后台的上传,这部分只要就只有一个函数move_uploaded_file
move_uploaded_file

  (PHP 4 >= 4.0.3, PHP 5)
move_uploaded_file -- 将上传的文件移动到新位置
说明
bool move_uploaded_file ( string filename, string destination )
  本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE
如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。
这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。
  代码部分:
  

package  
{
    import flash.display.Sprite;
   
    import flash.events.Event;
    import flash.events.MouseEvent;
    import fl.controls.Button;
   
    import flash.net.FileReference;
    import flash.net.FileFilter;
   
    public class Main extends Sprite
    {
        public var file:FileReference;
        public var btn:Button;
        public var arr:Array;
        public var imgfilter:FileFilter;
        public var swffilter:FileFilter;
        public var ureq:URLRequest;
        
        public function Main()
        {
            file = new FileReference();
            btn = new Button();
            imgfilter = new FileFilter("Image", "*.png;*.jpg");
            
            btn.label = "browser";
            btn.emphasized = true;
            btn.width = 150;
            btn.move(100, 100);
            ureq.url = "http://localhost/test/img/upload.php";
            
            btn.addEventListener(MouseEvent.MOUSE_DOWN, down);
            file.addEventListener(Event.COMPLETE, complete);
            file.addEventListener(Event.OPEN,open);
            file.addEventListener(Event.CANCEL, cancel);//点击取消按钮会广播这个事件
            file.addEventListener(Event.SELECT, select);
                        
            addChild(btn);
        }
        
        
        public function down(e:MouseEvent):void {
            file.browse([imgfilter]);//browse的参数是以个FileFilter对象,限制文件选择的类型
        }
        public function complete(e:Event):void {
            trace("complete"+e);
        }
        public function open(e:Event):void {
            trace("open");
        }
        public function cancel(e:Event):void {
            trace("cancel");
        }
        public function select(e:Event):void {
            var tem = e.target;
            trace(tem.name + "," + tem.creationDate + "," + tem.size);
            file.upload(ureq);//选择结束后,开始上传
        }
    }
   
}
php代码:

<?php
$uploaddir = './uploads/';//设置存储路径
$filename = $_FILES['Filedata']['name'];//获得选择的文件
$uploadfile = $uploaddir . $filename;//存储文件路径
$uploadfile = iconv('utf-8', 'gb2312', $uploadfile);//设置文件格式
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadfile);//开始上传
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103061-1-1.html 上篇帖子: vs.php for vs2010 破解方法[方法已过期] 下篇帖子: CI框架源码阅读笔记5 基准测试 BenchMark.php
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表