正确的方法来存储PHP的临时图像文件

时间:2012-05-26 23:12:31

标签: php

我有一个用imagecopyresampled操纵的图像资源。我需要将该图像传递给一组期望字符串输入而不是资源的方法。但我不需要在本地存储文件。

这是正确的方法:

  1. 使用imagepngimagejpeg
  2. 存储图像
  3. 将字符串(文件名)传递给方法
  4. 使用@unlink
  5. 销毁存储的文件

    是吗?似乎很草率。

    注意:图片不是来自文件上传,因此无法使用$_FILES["Filedata"]["tmp_name"]

    进行访问

1 个答案:

答案 0 :(得分:0)

我看了一下Amazon S3 PHP API: http://docs.amazonwebservices.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/upload_part

我假设您正在使用类似upload_part方法的字符串filename。在这种情况下,除非您计划修改其库,否则您需要将文件存储到磁盘并传递文件名,以便他们可以读取文件并执行上传。

除了问题中提到的步骤之外,您还可以查看imagedestroy以确保在使用imagepng将映像资源写入磁盘后释放映像资源的内存。然后,如您所述,您可以在上传完成后使用unlink删除您的临时文件。

我同意,这似乎有点浪费,但在这种情况下是必要的,因为API似乎没有提供替代方案。