首页 > 开发 > PHP > 正文

Flash上传文件

2024-05-04 22:58:37
字体:
来源:转载
供稿:网友
一直想搞这个功能, 想了很多歪门邪道, 未果!
昨天突然在 blueidea 上看到关于 flash 8 的新特性 (虽然早就装上了 flash 8 但一直没有仔细研究, 真是惭愧 :p) 中介绍了 flash 8 提供了上载和下载的接口, 马上下去研究了一下, 果然不错. 虽然上传还是需要后台脚本的支持, 但也足够我美上一阵子的了 :d
下面是研究成果, 不敢独享, 拿出来示众 :d
uploadfile.fla

code:
// 加载包
import flash.net.filereference;
// 定义主角 filereference 对象
var fileref:filereference = new filereference();
// 定义 监听对象
var filelsn:object = new object();
// 定义 文件类型数组 filereference 对象的 browse 方法的参数
// description: 描述
// extension : 扩展名列表
var filetyp:array = new array({description:"image files", extension:"*.jpg;*.gif"}, {description:"document files", extension:"*.txt;*.doc"});
btnbrowse.onrelease = function() {
// 打开 "选择文件" 对话框
fileref.browse(filetyp);
};
btnupload.onrelease = function() {
// 开始上传
fileref.upload("uploadfile.php");
};
btnclear.onrelease = function() {
strstate.text = "";
};
// 选择文件事件
filelsn.onselect = function(file:filereference) {
strstate.text += "onselect '"+file.name+"'/n";
};
// 取消选择
filelsn.oncancel = function(file:filereference) {
strstate.text += "cancel!/n";
};
// 打开文件开始上传
filelsn.onopen = function(file:filereference) {
strstate.text += "uploading... '"+file.name+"'/n";
};
// 上传成功
filelsn.oncomplete = function(file:filereference) {
strstate.text += "file '"+file.name+"' upload successfull!/n";
};
// 上传过程
filelsn.onprogress = function(file:filereference, bytesloaded:number, bytestotal:number):void {
strstate.text += "onprogress: "+file.name+" with bytesloaded: "+bytesloaded+" bytestotal: "+bytestotal+"/n";
};
// http 错误
filelsn.onhttperror = function(file:filereference, httperror:number) {
strstate.text += "http error: "+httperror+"/n";
};
// io 错误
filelsn.onioerror = function(file:filereference):void {
strstate.text += "io error: "+file.name+"/n";
};
// 安全错误
filelsn.onsecurityerror = function(file:filereference, errorstring:string):void {
strstate.text += "onsecurityerror: "+file.name+" errorstring: "+errorstring;
};
// 绑定监听器
fileref.addlistener(filelsn);
// 其他属性或事件请参考帮助中关于 filereference 对象的章节


uploadfile.php

code:
<?php
// flash 传递的文件表单 name 属性为 filedata
$filename = $_files["filedata"]["name"];
$file = $_files["filedata"]["tmp_name"];
$path = "uploadfiles/";
if (move_uploaded_file($file, $path . $filename)){
// echo 1;
}else{
// echo 0;
}
/*
* 只要上传代码就够了
* flash 似乎不判断该文件的返回值
* 即使该文件报告错 flash 也无法分析
* 所以最好保证这个文件不会出错
*/
?>
源文件下载
 
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表