欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uploadify 跨域上传实现

程序员文章站 2022-05-25 18:33:51
...
使用环境:Win2003+php+iis+FlashPaper  (www.a.com)
FlashPaper (下载安装)使用FlashPaper可打印文档->swf文件格式
C:\\flashpaper.bat
{
D:\awnueeqfdnt\FlashPaper\FlashPaper2.2\FlashPrinter.exe %1 -o %2
}
upload.php
{
$source_file  // 原文件路径
$convert_file // 转换文件
$bat_url = "C:\\flashpaper.bat";
$command = "$bat_url $source_file  $convert_file";
exec($command);
echo {json};  // 返回json 数据
}
采用方案: 配置安全策略文件(crossdomain.xml),将其放在根目录。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM  "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all" /> 
    <allow-access-from domain="*" /> 
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
表示该服务允许任何外域来访问。


使用环境:php+nginx  (www.b.com)
jquery uploadify 异步跨域实现(不同域名都可实现),解诉www.a.com返回的json信息


问题1
文件上传后FlashPaper不能进行转换。最终查找出,以本机账户测试可以生成swf文件。在iis应用程序池->属性->标识->预定义账户,原以(网络服务)改成(本地系统) 变可。

问题2
(自动打印无法识别这类文件),要打印这个文件,先用合适的程序打开它,再用Macromedia FlashPaper打印机将其打印,FlashPaper是将可打印的文档输出为swf文件格式,在FlashPaper服务端也必须要有相应可打开源文件的软件。

问题3
测试过程中出现 uploadify io error  末解

问题4
当上传图片时出现 HTTP ERROR 302 错误, 这是服务端需要登录验证,而客户端uploadify 并没有把 cookie 中的 sessionId  发送给服务器
所以出现302错误
解决方法:
客户端发sessionId 做参数发送给服务端
'scriptData':{'PHPSESSID':'$sessionId'}
服务端
if(isset($_GET['PHPSESSION'])){
session_id($_GET['PHPSESSION']);
}
session_start();



查看文档:http://www.phptogether.com/uploadifydoc/onerror.html