• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

as3与php 上传单个图片demo

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

只是一个demo,仅跑通上传和存储这一步。

as3的要点:

1、单个上传使用FileReference,一次可选择多张图片可使用FileReferenceList,在flash player 10+可使用load方法可实现预览图片

2、过滤选择文件,使用FileFilter,在调用browse时传入(参数为数组),其中FileFilter实例第二个参数,多个文件使用;分隔,如*.jpg;*.gif

3、监听上载完成可以使用Event.COMPLETE,但若需要获取后台返回的数据流,则需要监听UPLOAD_COMPLETE_DATA(在flash.net.DataEvent包中)

 

php:

1、接收上传参数,默认为(Filedata),可在as3中FileReference实例的upload第二个参数指定

2、在windows下上载图片,其中文名称,在保存时需要转成gb2312(不然会出现乱码),在判定图片是否存在是也需要使用gb2312(使用utf-8则不行)

 

as3的代码(大体思路,不完整版):

package {
   2:     
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.events.DataEvent;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
  16:     
extends Sprite {
  18:         
private var seltBtn:DisplayObject;
private var _file:FileReference;
  21:         
  22:         function UploadImg() {
  23:             stage.scaleMode = StageScaleMode.NO_SCALE;
  24:             stage.align = StageAlign.TOP_LEFT;
  25:             
  26:             init();
  27:         }
  28:         
void {
);
  31:             
  32:             seltBtn.addEventListener(MouseEvent.CLICK, selectClickHandler);
  33:         }
  34:         
void {
new FileReference();
);
  38:             
  39:             fileRef.addEventListener(Event.SELECT, onSelectHandler);
  40:             fileRef.browse([fileFilter]);
  41:             
  42:             _file = fileRef
  43:         }
  44:         
void {
  46:             _file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadCompleteHandler);
  47:             _file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
  48:             _file.addEventListener(ProgressEvent.PROGRESS, onProgresshandler);
));
  50:         }
  51:         
void {
'上传完成' + evt.data);
  54:         }
  55:         
void {
  57:             trace(evt);
  58:         }
  59:         
void {
 + evt.bytesTotal);
  62:         }
  63:         
  64:     }
  65: }

 

php(需要先开启extension=php_exif.dll,同时要注意post_max_size参数的大小,如果上载的文件过大,可能获取不到FIledata了,需要先判定文件大小)

1、目录结构:

2、不完整示例代码:

   1: <?php
] > 0) {
]);
   4: }
   5:  
;
   7:  
]);
.$fileName;
  10:  
if (file_exists ($reallyName)) {
;
else {
  14:     
)) {
);
  17:     }
  18:     
],  $reallyName);
 . $fileName;
  21: }
  22:  
  23: ?>

 

运行的效果:

 

上面的代码,仅是思路,写出实现上载功能较为核心的代码。若需要完成更复杂的应用,则要自己在此基础上进行封装一下,例如:多个文件上载,显示上载进度条…


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php格式化数字千位分隔符发布时间:2022-07-10
下一篇:
php获取request_uri发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap