通常,当我通过URLLoader向PHP脚本发送信息时,我会让PHP返回各种成功代码,这样我就可以让我的Flash文件根据PHP返回的任何成功代码进行响应(0表示失败,1表示成功,2表示其他错误代码,等等)。
现在,我正在尝试提交一个包含大量数据(姓名、电子邮件、生日等)的表单。以及上传文件。我使用fileReference上传文件,并将附加变量与上传请求一起发送。这些信息可以很好地写入我的PHP文件。但是,我找不到任何从PHP文件中获取信息的方法。也就是说,如果文件加载成功,我希望PHP返回"success=1“,如果在MySQL数据库中插入数据时出现错误,则返回"success=2”,等等,但目前我不知道如何从PHP获取信息。通常我可以只查看_myURLLoader.data,但在本例中,我需要引用_fileReference.data,它实际上是文件的位图数据。
有谁有什么想法吗?
谢谢!
--eric
发布于 2009-08-13 15:40:18
你可以使用http状态来告诉flash当你上传一个文件时发生了什么。
在php端,为了告诉flash没有收到文件,我执行以下操作:
if(!isset($_FILES['Filedata']['name']))
{
header("HTTP/1.x 500");
print "RESULTS=FAIL";
exit();
}
如果文件比我想要的大:
if(!isset($_FILES['Filedata']['size']) > $maximumuploadsize)
{
header("HTTP/1.x 406");
print "RESULTS=FAIL";
exit();
}
等。
然后,在闪存端,我将设置一个.onHTTPError侦听器,如下所示:
photo.onHTTPError = function(file:FileReference, httpError:Number)
{
switch (httpError)
{
case 500:
// Handle missing file
break;
case 406:
// Handle file too large
break;
}
}
比尔·H
发布于 2009-08-13 21:57:12
从Flash Player 9.0.28.0 (我想)开始,你可以使用uploadCompleteData事件。在此之前,您必须使用Bill H ^^描述的技术
发布于 2009-08-13 15:28:33
我会检查几件事。
首先,您的error_reporting设置为什么?你可能在你的PHP中有一个错误,没有任何输出,因为执行停止了。
另外,尝试使用error_log()函数并检查日志中的输出。
https://stackoverflow.com/questions/1275210
复制相似问题