使用WP Super Cache+CDN Sync Tool自動同步圖片損壞的解決辦法

2013-11-01 11:15:03來源:劇終's BLOG作者:

今天終于把大家推薦的W3TC給換掉了,原因無他。消耗資源過多,并且效果不好。根據(jù)各種GOOGLE發(fā)現(xiàn)可以使用CDN Sync Tool+WP Super Cache來替代W3TC,在經(jīng)過各種測試之后發(fā)現(xiàn)通過CDN Sync Tool自動同步到又拍云的圖片

今天終于把大家推薦的W3TC給換掉了,原因無他。消耗資源過多,并且效果不好。根據(jù)各種GOOGLE發(fā)現(xiàn)可以使用CDN Sync Tool+WP Super Cache來替代W3TC,在經(jīng)過各種測試之后發(fā)現(xiàn)通過CDN Sync Tool自動同步到又拍云的圖片全部都無法打開,把圖片下載回本地發(fā)現(xiàn)無法打開,直接報錯,如下圖:

\

在使用Beyond CompareHA的16以16進制方式對文件進行對比后發(fā)現(xiàn)從又拍云中取回的文件比原始的多了一些0D并且比原始文件要稍微大一點。

\

根據(jù)各種GOOGLE之后得知,CDN Sync Tool使用的是FTP_ACSII方式對文件進行上傳的。

ASCII模式

復(fù)制時候會進行調(diào)整,主要體現(xiàn)為對不同操作系統(tǒng)的回車/換行/結(jié)束符等進行轉(zhuǎn)譯。

比如,回車符號在Unix下是 (0A),Windows下是 (0D0A),Mac下是 (0D)。當在一個Windows操作系統(tǒng)上用ASCII方式從Unix服務(wù)器上下載文件時——無論是文本文件還是二進制文件——都會進行檢測和轉(zhuǎn)換:每檢測到一個0A,則認為是回車符號,自動插入0D形成Windows下的回車符。顯然,如果下載的是文本文件,這種轉(zhuǎn)換是很有用的——我們能在Windows下看到分行后的文本,否則我們看到的是中間夾雜著小黑方塊的不換行的一堆文字;然而如果下載的是二進制文件(比如exe或rar),這種轉(zhuǎn)換無異于畫蛇添足,破壞了整個文件。

根據(jù)GOOGLE到的東西,我們來對源碼做一點小手術(shù),強制CDN Sync Tool來使用FTP_BINARY的二進制方式來上傳文件。

  • 1.打開 wp-content/plugins/cdn-sync-tool/lib/Cst.php
  • 2.找到 ftp_put($this->cdnConnection, $filename, $file, FTP_ACSII); 這一句
  • 3.修改成 ftp_put($this->cdnConnection, $filename, $file, FTP_BINARY);

現(xiàn)在再重新上傳圖片,就不會出問題了。

關(guān)鍵詞:wordpress

贊助商鏈接: