在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
只是一个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: ?>
运行的效果:
上面的代码,仅是思路,写出实现上载功能较为核心的代码。若需要完成更复杂的应用,则要自己在此基础上进行封装一下,例如:多个文件上载,显示上载进度条… |
2022-08-17
2022-07-18
2022-11-06
2022-08-17
2022-07-30
请发表评论