我正在从服务器请求一个文件,使用它读取它file_get_contents
并将该数据发送到客户端。是否可以将附加信息(如文件 ID)与图像二进制数据一起发送?
我正在使用 Flash 播放器来显示此图像。可以选择使用flash loader 对象 并使用 url 加载图像,但这意味着所有图像都必须是公开的,我想将它们保密。
我正在从服务器请求一个文件,使用它读取它file_get_contents
并将该数据发送到客户端。是否可以将附加信息(如文件 ID)与图像二进制数据一起发送?
我正在使用 Flash 播放器来显示此图像。可以选择使用flash loader 对象 并使用 url 加载图像,但这意味着所有图像都必须是公开的,我想将它们保密。
这是与客户端或直接浏览器客户端的 Ajax 会话,还是其他?
如果是普通浏览器,不知道为什么需要 get_file_contents 只是链接文件并将 ID 等文件信息添加到 html 中很简单
如果是 Ajax,您可以将文件信息格式化为预先确定的长度字符串,附加到文件内容中,并将其全部作为一个数据块发送。然后,客户端可以剥离已知长度的前置字符,以单独访问文件信息和内容,或使用数十种其他方法中的任何一种
你需要澄清这个问题,我认为
添加 :
要解决保持文件私密性的问题,您可以尝试将文件复制到临时文件夹中,这会增加服务器负载,但可能会解决您的问题。例如,代替 mysite.com/img/test.jpg 使用 mysite.com/workfiles/userid_12345678_img_randombit.jpg ........ 跟踪表中的文件并在一段时间后删除它们......工作,但可能会解决您的隐私问题
可以打电话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
我认为您可以使用“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();