我有一個使用imagecopyresampled
處理的圖像資源。我需要將該圖像傳遞給一組需要字符串輸入的方法,而不是資源。但我不需要在本地存儲文件。爲PHP存儲臨時圖像文件的正確方法
這是正確的方法:
- 存儲與
imagepng
和imagejpeg
- 傳遞字符串(文件名)的方法的圖像
- 破壞與
@unlink
存儲的文件是那對嗎?似乎馬虎。
注:該圖片不是從文件上傳過來的,因此不能用$_FILES["Filedata"]["tmp_name"]
我有一個使用imagecopyresampled
處理的圖像資源。我需要將該圖像傳遞給一組需要字符串輸入的方法,而不是資源。但我不需要在本地存儲文件。爲PHP存儲臨時圖像文件的正確方法
這是正確的方法:
imagepng
和imagejpeg
@unlink
存儲的文件是那對嗎?似乎馬虎。
注:該圖片不是從文件上傳過來的,因此不能用$_FILES["Filedata"]["tmp_name"]
訪問我看了一下亞馬遜S3 PHP API: http://docs.amazonwebservices.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/upload_part
我想你正在使用類似upload_part
的方法,它採用字符串filename
。在這種情況下,除非您打算修改其庫,否則您需要將文件存儲到磁盤並將文件傳遞給它們,以便他們可以讀取文件並執行上載。
除了你的問題中提到的步驟,你可以看看imagedestroy
,以確保你的圖像資源的內存釋放後,它被寫入磁盤imagepng
。然後,如您所述,您可以在上傳完成後使用unlink
刪除臨時文件。
我同意,它看起來有點浪費,但在這種情況下是必要的,因爲API似乎沒有提供替代方案。
謝謝!非常有用的答案。 – Kyle
你能否介紹一下這些方法的更多細節,以及他們需要/問什麼?有點難以告訴你需要做什麼,否則。 – Death
說實話,這裏的主要問題是這些圖像源自哪裏?如果他們來自表單上傳,那麼該圖像已經存儲在臨時位置,因此您不需要自己存儲圖像。 – Peter
@彼得,他們不是從形式上傳。我從CDN中拉出一張圖像,裁剪它,然後將裁剪後的版本發送回CDN(Amazon S3 CDN +他們的類和方法)。 – Kyle