我有以下代码:
private function uploadFile(file:File, packageId:String):void {
try {
var fullpath:String = file.nativePath;
var filename:String = fullpath.substr(fullpath.lastIndexOf("/")+1,fullpath.length);
packageItem.status = "Uploading file: "+filename;
file.addEventListener(ProgressEvent.PROGRESS, function(event:ProgressEvent):void{uploadProgress(event, packageId)} );
file.addEventListener(flash.events.Event.COMPLETE, function(event:flash.events.Event):void{uploadComplete(event, packageId)} );
file.upload(urlRequest, packageId);
} catch (error:Error) {
logging.log(error.message);
}
}
所以我从文件对象的路径中提取文件名。
文件来自:
File.applicationStorageDirectory
问题是这不适用于Windows,因为他们使用反斜杠而不是像mac osx那样使用斜杠。什么是分离文件名和文件的最佳方法,以便它可以在mac和windows上运行?
答案 0 :(得分:0)
相当明显。
url
属性包含文件的文件系统URL。所以文件的nativePath
为
C:\ Documents and Settings \ some_file.txt
将有url
文件:/// C:/Documents%20and%20Settings/some_file.txt
现在你只需要分开 /
就可以了。
P.S。:您可能需要unescape
文件名才能删除网址格式