Comments (5)
你这个需求有点难弄,目前我给你一种办法:
- 将这个文件放在
zimg/bin/www
里面 - 修改
zimg/conf/zimg.lua
中的root_path = pwd .. '/www/crossdomain.xml'
- 重启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.
感谢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.
buaazp:您好!
经过反复尝试,Security.loadPolicyFile()调取crossdomain.xml始终不成功,大概因为不是http文件调用方式。同时安装web服务器的尝试也不成功。。。请问,您还有没有什么好的建议给我?谢谢。
from zimg.
按我的方法返回的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.
非常感谢!我再试试。
from zimg.
Related Issues (20)
- 如何返回base64的图片格式?
- 图片显示不完整
- 官网文档里的很多链接都失效了,辛苦维护一下吧
- 怎么删除图片呢 HOT 1
- zimg 进程异常退出,提示内存越界 HOT 2
- how zimg restart after change config?
- PNG image uploaded successfully, but cannot be accessed HOT 1
- 官方文档wget libevent安装cloud.github.com域名无法解析问题
- 各位大佬 能不能把小视频也集成进来?支持图片和视频 HOT 1
- info 接口获取图片信息很慢,请问可以通过什么参数做优化吗 HOT 1
- 基于centos 8.0 及以上 安装 有问题
- make error HOT 2
- 出现大量 Error from accept() call: Too many open files 错误 HOT 1
- [Building error]: /usr/bin/ld: CMakeFiles/zimg.dir/zaccess.c.o:(.bss+0x0): multiple definition of `settings'; CMakeFiles/zimg.dir/main.c.o:(.bss+0x20): first defined here HOT 2
- make error HOT 1
- 请问zimg硬盘写满了会怎么办,会删除历史数据吗 HOT 2
- centos7 需要安装依赖 HOT 1
- 请求图片导致服务异常退出 HOT 1
- using MinIO or AWS S3 API standard compatible components as the optional Storage replacement? HOT 1
- How does libgsl.a compile into libzimg.a? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zimg.