我正在从服务器请求文件,使用file_get_contents
读取该文件并将该数据发送到客户端。是否可以发送附加信息(如文件ID)和图像二进制数据?
我正在使用Flash播放器来显示此图片。可以选择使用flash loader object并使用网址加载图片,但这意味着所有图片都必须公开,我希望将它们保密。
答案 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();