通常当我通过URLLoader向PHP脚本发送信息时,我会让PHP返回各种成功代码,因此我可以让我的Flash文件根据PHP返回的任何成功代码进行响应(0表示失败,1表示成功,2表示一些其他错误代码等。)。
现在我正在尝试提交一个包含大量数据的表单(姓名,电子邮件,生日等)以及上传文件。我正在使用fileReference上传文件并发送附加变量以及上传请求。该信息正好使我的PHP文件。但是,我找不到从PHP文件获取信息的任何方法。也就是说,如果文件成功加载,我希望PHP回显“success = 1”,如果将数据插入MySQL数据库等时出现错误,则“success = 2”,但目前我不能弄清楚如何从PHP获取信息。通常我只能查看_myURLLoader.data但在这个实例中我需要引用_fileReference.data,它实际上是文件的位图数据。
有人有什么想法吗?
谢谢!
- 埃里克
答案 0 :(得分:2)
您可以使用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;
}
}
Bill H
答案 1 :(得分:1)
自Flash Player 9.0.28.0(我认为)以来,您可以使用uploadCompleteData事件。在此之前,您必须使用Bill H ^^
描述的技术答案 2 :(得分:0)
我会检查一些事情。
首先,你的error_reporting设置为什么?您的PHP可能有错误,因为执行停止,所以没有任何输出。
另外,尝试使用error_log()函数并检查日志输出内容。
答案 3 :(得分:0)
完全不同的方法是在您的系统上安装Fiddler。如果您正在处理https流量,您可以使用它来解密所有通过您的网络传输。这不会帮助您的Flex应用程序处理响应,但您将能够在调试/开发过程中观察服务器反馈。