如何修復 WordPress 中的圖像上傳錯誤
已發表: 2018-02-28最近,我們發布了修復 WordPress 錯誤的完整指南,我們的一位讀者通過電子郵件向我們發送電子郵件,了解如何修復 WordPress 中的圖像上傳錯誤。 不是很長一段時間我都記不起我自己博客上的這個錯誤,這讓我整晚都在掙扎並找出問題並修復它。
那時我的博客才剛剛開始,所以我沒有發布那個解決方案,但是幫助其他人解決這個奇怪的問題永遠不會太晚。
基本上,有了這個問題,您無法在 WordPress 中上傳任何圖像,如果上傳成功,它將在媒體庫中顯示圖像已損壞。 在本文中,我們將向您展示如何修復 WordPress 中的圖片上傳問題。
這就是您可能面臨 WordPress 上傳圖像錯誤的原因。
- 圖片大小
- PHP 內存
- 國防部安全
- 插件衝突
- 文件權限
- 服務器上的 PHP 版本
圖片大小
當您嘗試上傳像素大小較大的圖像時會發生這種情況,例如,4000 x 3000 像素的圖像。 這對於您的服務器來說太大而無法處理。
即使您的圖像小於該大小,某些服務器也會顯示錯誤,這完全取決於您的服務器資源。
解決方案
減小圖像的大小。 例如,不要添加非常大的像素圖像。 如果您的帖子內容區域為 800 像素寬,請不要添加大於該寬度的圖像。
通過反複試驗減小圖像大小,直到您能夠上傳它而不會出現任何錯誤。 如果您使用高級 WordPress 主題,對於大多數 WordPress 網站來說 1075 像素就足夠了,請查看其文檔以了解所需的圖像大小。
由於它沒有足夠的空間來擴展並且它所做的只是縮小到那個空間,問題是在上傳那個大小的圖像時,WordPress 會消耗大量的內存。 由於某些服務器限制了 WordPress 可以使用的內存量,在這種情況下,它會在上傳時導致錯誤。
PHP 內存
WordPress 的功能和資源畢竟是在 PHP 上運行的,而且運行 PHP 的服務器可以限制這些資源。
您可以自行增加 PHP 內存,也可以諮詢您的網絡託管支持團隊。 內存可以通過兩種方式增加:
解決方案
- 增加 WordPress 內存
- 增加 PHP 內存
您可以通過在位於 WordPress 根目錄中的 wp-config.php 中添加此代碼來增加 WordPress 內存。
定義('WP_MEMORY_LIMIT','256M');
如果您的主機/服務器不允許您增加 PHP 內存限製或在一定程度上限制它,則上述設置可能不起作用,因此我建議直接與您的支持人員聯繫並要求他們為您更改限制。 你會跳過麻煩。 最好要求支持團隊增加您的 PHP 內存,但如果您喜歡麻煩,請將以下代碼添加到您的 php.in 或 php5.ini
memory_limit 256M
國防部安全
您可能從未註意到這種安全性,或者您知道這一點。 ModSecurity 也被稱為 .htaccess,我希望你已經在你的 WordPress 根目錄中看到了這個文件,大部分情況下它是隱藏的。
如果您的服務器啟用了 mod 安全性,那麼在您的情況下,這個文件可能會導致問題。
解決方案
您需要為上傳禁用 mod 安全性,因此在 wp-admin 文件夾中創建一個 .htaccess 並添加以下代碼。
<IfModule mod_security.c>
SecFilterEngine 關閉
SecFilterScanPOST 關閉
</IfModule>
這將禁用 wp-admin 中上傳文件接收代碼的 mod_security。
注意:如果它在您的服務器上導致任何錯誤,請刪除它。
插件衝突
已經確認,在大多數情況下,插件與上傳過程發生衝突。 在許多情況下,甚至我的博客也遭受了插件衝突的困擾。
這是由於一些過時的插件或由於升級到一個或其他插件或 WordPress 的最新版本而觸發的一些語法錯誤。
我發現有助於上傳、縮小或壓縮圖像的插件大多會出現錯誤。 在某些情況下,如果您使用該應用程序壓縮或渲染圖像,某些桌面應用程序也會觸發此錯誤。
此外,jetpack、有助於上傳到 cdn 或 aws 或遠程服務器的插件會導致 WordPress 在上傳圖像時出錯。
解決方案
請繼續一次禁用一個插件。 清除您的緩存和瀏覽器歷史記錄並重新訪問媒體上傳器以上傳您的圖像,看看您是否成功。
如果沒有嘗試不使用任何 WordPress 插件和桌面應用程序並上傳原始 .png 或 .jpg 並檢查它是否有效。
文件權限
如果不是插件或內存有限導致上傳圖像時出錯,那麼我建議您查看服務器上的文件權限。
即使您沒有更改文件權限,它也會自動更改。
想知道。 它是如何改變的?
如果您的託管公司在其服務器上運行升級或您已更新插件,則可以更改文件權限。
如果您使用的是共享網絡託管,則可能是黑客訪問了您的文件,並且您的文件權限可能已被黑客上傳的有效負載更改。
您可以通過 FTP 程序輕鬆更改文件權限,我在我的 mac 和 windows pc 上都使用 Cyberduck 進行 ftp。
通過 FTP 訪問您的文件,然後轉到/wp-content/目錄。 在那裡你會看到/uploads/文件夾。 右鍵單擊上傳目錄並選擇文件權限。
首先,您需要將上傳目錄本身和其中的所有子目錄的文件權限設置為744 。 為此,請在數值框中輸入 744 ,然後選中遞歸到子目錄旁邊的框。
最後,您需要單擊“僅應用於目錄”單選按鈕。 單擊確定按鈕以應用這些更改。
您需要重複相同的過程,但對於上傳文件夾。
您需要為上傳目錄中的所有文件設置文件權限。 為此,請右鍵單擊上傳目錄並選擇文件權限。
在文件權限中,對話框將數值更改為644 。 選中Recurse into subdirectories旁邊的框。 單擊僅應用於文件單選按鈕。 單擊確定按鈕以應用這些更改。
您的 FTP 程序將應用此更改,並且您的圖像上傳器將再次工作
服務器上的 PHP 版本
在解決此錯誤時,您在執行的整個任務中都不會注意到它,因為在大多數情況下,沒有人會想到這一點。
為什麼任何人都應該,因為在大多數情況下,用戶說它在我點擊更新按鈕之前一直工作到昨天?
但是更新插件、主題或 WordPress 可能會觸發此錯誤和其他幾個錯誤,因為 WordPress 是基於 PHP 構建的,並且它有一些要遵循的標準,因此開發人員總是統計對 WordPress 穩定的版本。
如果您的服務器 PHP 版本與 WordPress 要求的不同,請聯繫您的服務器支持人員並要求他們將您的 PHP 版本更改為 WordPress 的要求。
結論
(更新) 。 我們的一些讀者指出了這個修復。 我們為此感謝他們!
確保圖像文件的名稱中沒有撇號(例如 john's-blogging.png),因為這也會觸發錯誤。
(更新) 。 如果您使用的是圖像優化器插件,請停用該插件並查看是否可以解決問題。
如果您仍然面臨問題,請告訴我。 我很樂意為您提供幫助,並在下方評論哪種方法可以解決此錯誤。