Git Product home page Git Product logo

Comments (5)

buaazp avatar buaazp commented on July 24, 2024

你这个需求有点难弄,目前我给你一种办法:

  1. 将这个文件放在zimg/bin/www里面
  2. 修改zimg/conf/zimg.lua中的root_path = pwd .. '/www/crossdomain.xml'
  3. 重启zimg

注意,zimg的URL不像普通的web框架那样是可以支持文件的,除了符合md5格式(也就是图片获取时的URL)外,只允许访问配置文件中的root_path,所以你暂时把它设置成这个xml文件。

但是你访问这个xml的时候,不能用http://www.xxx.com/crossdomain.xml访问,而应该用http://www.xxx.com/也就是zimg域名的根目录来访问。

这会导致默认的那个index html上传页面无法访问,不过上传不会受到影响。

暂时先这么用吧,但是不能彻底解决你的问题。

from zimg.

marsung avatar marsung commented on July 24, 2024

感谢buaazp的及时回复!
我刚接触zimg,在阿里云上搭建了一台独立的zimg服务器,准备尝试把网站的图片服务器,搬移过去。
由于我用的flash AS3.0 编的图片上传终端,在向您请教之前,尝试过模仿你的 echo_cb 函数,在zhttpd.c中增加以下 cross_cb函数:

void cross_cb(evhtp_request_t *req, void *arg)
{
    evbuffer_add_printf(req->buffer_out, "<?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=\"by-content-type\" /><allow-access-from domain=\"xxx.xx.xx.xxx\" secure=\"true\" /><allow-http-request-headers-from domain=\"xxx.xxx.xxx.xxx\" headers=\"*\"/></cross-domain-policy>");
    evhtp_headers_add_header(req->headers_out, evhtp_header_new("Server", settings.server_name, 0, 1));
    evhtp_headers_add_header(req->headers_out, evhtp_header_new("Content-Type", "text/xml", 0, 0));
    evhtp_send_reply(req, EVHTP_RES_OK);
}

同时在main.c中添加:
evhtp_set_cb(htp, "/cross", cross_cb, NULL);
在zhttpd.h中添加:
void cross_cb(evhtp_request_t *req, void *arg); // set crossdomain.xml
(见笑了!我没有学过c语言哈。。。)
编译后,在浏览器输入:http://xxx.xxx.xx.xx:4869/cross 路径,能够以字符方式输出 crossdomain.xml的内容,但不知怎么回事,始终不能让as3中加载成功。。。。:(
Security.loadPolicyFile("http://xxx.xxx.xx.xx:4869/cross");

刚才根据你的回复,正在尝试。已经按你的策略改好配置文件,从浏览器调用可以看到被调用的crossdomain.xml内容,被当成html格式解析,但至少说明调用是成功了。不过,目前as3中加载仍然显示不成功。因为整个程序都在调试过程中,目前还不能说这个办法不能暂时用哈,也有可能是as3中的代码有问题。。。。

另外,我在想一个思路,如果我同时把这台zimg服务器,也装上web环境(Linux+nginx+php+mySql),把crossdomain.xml文件放在web根目录下,不知两个系统能同时工作不?

继续努力中。。。。

再次感谢你的zimg,以及你的帮助!!

from zimg.

marsung avatar marsung commented on July 24, 2024

buaazp:您好!
经过反复尝试,Security.loadPolicyFile()调取crossdomain.xml始终不成功,大概因为不是http文件调用方式。同时安装web服务器的尝试也不成功。。。请问,您还有没有什么好的建议给我?谢谢。

from zimg.

buaazp avatar buaazp commented on July 24, 2024

按我的方法返回的HTML包含的header是text/html,你去zhttpd.c里面的这一行:https://github.com/buaazp/zimg/blob/master/src/zhttpd.c#L919 ,如果你修改过的话位置可能不是919行,自己找找,

evhtp_headers_add_header(req->headers_out, evhtp_header_new("Content-Type", "text/html", 0, 0));

把text/html改成text/xml,重新编译试试。

如果还是不行,zimg作为一个http server已经返回给html文件了,你就应该从Security.loadPolicyFile()出错的地方查,看看它出错的原因是什么,打到日志里看看。

from zimg.

marsung avatar marsung commented on July 24, 2024

非常感谢!我再试试。

from zimg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.