发布网友 发布时间:2024-10-23 20:58
共3个回答
热心网友 时间:2024-10-30 11:16
flex端上传文件后,java端是不能返回值的,你只能通过为FileReference设置事件来确定其是否已经上传成功。
如:
var request:URLRequest = new URLRequest();
request.data = sendVars; // 传往后台的值
request.url = _fileUrl; // 后台地址
request.method = URLRequestMethod.GET; // GET方式传值
var _refUploadFile:FileReference = new FileReference();
_refUploadFile = listFiles.selectedItem.file;
_refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);
_refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete);
_refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
_refUploadFile.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
_refUploadFile.upload(request, "file", false);
当文件上传过程中会调用onUploadProgress,用于实现进度条;
当一个文件上传完成后调用onUploadComplete,可根据上传文件的个数(多个文件上传)选择继续上传还是其他处理;
当文件由于IO出错,则为onUploadIoError;
当文件由于Security出错,则为onUploadSecurityError
热心网友 时间:2024-10-30 11:14
可以用Flash缓存的办法,Flashplay浏览器默认的缓存数据是100M,也就是说,你文件在百兆之内的话就行,用http的方式固然可以,但是在提交给servlet上传之后就没法办法判断servlet是否传递成功了,建议用remoteobject传递二进制数组给后台的JAVA,然后在有java向前端返回结果信息,我做过没问题的,但是要求Flashplay的版本是10或更高,先将文件上传至Flashplay的缓存内,然后在通过提取缓存内的二进制数组,将数组传递给后台的java,后台执行完操作后返回结果值就可以了。
热心网友 时间:2024-10-30 11:15
如果在A中创建的B对象b1是public的就可以这么写。
如果不是public的,就需要在A中写getB()的方法,
就应该写成a1.getB().X();
请参考