Heim >php教程 >php手册 >Flash上传文件

Flash上传文件

WBOY
WBOYOriginal
2016-06-21 09:07:251268Durchsuche

上传

一直想搞这个功能, 想了很多歪门邪道, 未果!
昨天突然在 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:
// 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 也无法分析
* 所以最好保证这个文件不会出错
*/
?>
源文件下载
 



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn