返回二进制数据以及其他信息

时间:2013-09-06 21:58:31

标签: php flash actionscript

我正在从服务器请求文件,使用file_get_contents读取该文件并将该数据发送到客户端。是否可以发送附加信息(如文件ID)和图像二进制数据?

我正在使用Flash播放器来显示此图片。可以选择使用flash loader object并使用网址加载图片,但这意味着所有图片都必须公开,我希望将它们保密。

3 个答案:

答案 0 :(得分:0)

这是与客户端或直接浏览器客户端的Ajax会话,还是别的什么?

如果浏览器正常,不确定为什么需要get_file_contents只需链接文件并将ID等文件信息添加到html中就很简单

如果是Ajax,您可以将文件信息格式化为预先设置的文件内容长度字符串,并将其全部作为一个数据块发送。 然后,客户端可以剥离已知长度的预先填写的字符,以分别访问文件信息和内容或任何其他几种方法

你需要澄清这个问题,我想

补充:

要解决保持文件私密的问题,您可以尝试将文件复制到临时文件夹中,大量服务器负载但可能会解决您的问题。例如,而不是mysite.com/img/test.jpg使用mysite.com/workfiles/userid_12345678_img_randombit.jpg ........跟踪表中的文件并在一定时间后删除它们.....位工作,但可能会解决您的隐私问题

答案 1 :(得分:0)

是否可以拨打exiftool?您可以设置一个键:值。请看这里的png和gif ...... http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PNG.html#TextualData http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/GIF.html

答案 2 :(得分:0)

我认为您可以使用“Content-Disposition”HTTP标头。我不知道如何在PHP中完成它,但在.NET中,您可以执行以下操作(可能您可以找到如何转换为PHP):

    this.Response.Clear();

    this.Response.ContentEncoding = Encoding.UTF8;
    this.Response.Buffer = true;

    this.Response.ContentType = "application/octet-stream";
    this.Response.AddHeader("Content-Disposition", "attachment; filename=filename.txt");

    Response.Write(_buffer);
    Response.End();