0

我需要帮助,我使用 php gd 创建了一个 facebook 应用程序。程序是当用户打开应用程序时会出现一个图像。图像包含用户的用户名、个人资料图片和随机生成的昵称。我正在保存输出图像以 resized.jpg 格式发送到服务器,并使用 facebook graph 将该图像发布到用户墙上。问题是当 2 个用户同时使用该应用程序时,输出会有所不同。如何为每个用户生成图像而不将其保存到服务器并发布到 Facebook。现在 iam 使用 html img 标签在应用程序中显示图像..

4

2 回答 2

0

答案很简单:每个用户的图像文件名必须有不同的名称。如果$uid变量中有用户 ID,为什么不将目标文件另存为:

imagejpeg( $rImg, "resized".$uid.".jpg" );

这样,每个用户将拥有不同的图像。

于 2012-09-24T12:44:13.100 回答
0

与其将文件作为“resized.jpg”保存到服务器,不如将生成的图像直接输出给用户。从http://php.net/manual/en/function.imagejpeg.php它说将文件名设置为 NULL,这会导致将输出发送给用户而不是文件。注意:您可能还需要使用 header 函数设置正确的 Content-Type。

这种方法是 Tomasz 的替代方法。使用他的方法,每个图像都缓存在您的服务器上。使用我的,每次请求页面时都会生成图像。这是一个显示差异的示例:

<img src="http://example.com/resized1234.jpg"> #1234 is the user's id
<img src="http://example.com/generate-image.php?uid=1234">

在您的情况下,您说您将图像直接发布到 Facebook,所以我会建议我的方法,因为如果您将图像发布到他们的网站上,Facebook 将存储它自己的图像副本,并且不需要缓存。此外,您的网站上不会堆积其他用户的图像。

如果您需要我澄清我的回答中的任何内容,请告诉我!

于 2012-09-24T12:53:56.843 回答