Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🔧 Kuidas parandada pildi üleslaadimise viga WordPressis

🔧 Kuidas parandada pildi üleslaadimise viga WordPressis

Pildi üleslaadimise viga WordPressis tabab kõige ebasobivamal hetkel. Valmistad postitust ette, valid pildi, klõpsad „Upload" ja WordPress näitab vaikselt „HTTP Error" või keeldub faili salvestamast ilma selgituseta. Kui see juhtuks vaid korra, poleks hullu, kuid mõnel administraatoril ebaõnnestuvad üleslaadimised järjepidevalt iga paari päeva tagant.

Põhjus on harva ilmselge. Süüdlane võib olla ükskõik mis: migratsiooni järel katki läinud õigused, turvaplugina konflikt, piiratud mälulimiit odaval jagatud majutusel või ModSecurity, mis käsitleb sinu pilti ründena. Hea uudis: peaaegu kõiki põhjuseid saab parandada ilma arendaja ja majutustoe poole pöördumata.

Sellest juhendist leiad täieliku diagnostika- ja parandusahela piltide üleslaadimise vigadele. Alates lihtsast (brauseri vahetamine, failide ümbernimetamine) kuni serveritasemeni (php.ini, .htaccess ja wp-config.php redigeerimine). Võta see ette ja paranda ära; enamik juhtumeid laheneb 5-10 minutiga.

💡 Kiirülevaade:

  • Kontrolli /wp-content/uploads/ kausta õigusi FTP või cPanel File Manageri kaudu: kaustadel 744 ja failidel 644.
  • HTTP vigade korral järgi ahelat: tühjenda brauseri vahemälu → nimeta fail ümber → tihenda see → deaktiveeri pluginad → suurenda PHP mälu → muuda PHP versiooni.
  • „Missing a temporary folder" vigade ja failisuuruse limiidi probleemide puhul aitavad paar rida failides wp-config.php ja .htaccess.
  • GoDaddy ja DreamHosti kasutajad leiavad spetsiifilised lahendused lõpust.

Miks piltide üleslaadimise vead üldse tekivad

WordPress salvestab kõik meediafailid kausta /wp-content/uploads/. Et sinna pilti kirjutada, vajab PHP protsess kirjutusõigusi. Kui õigused on katki (see juhtub serveri uuenduste, migratsioonide, majutaja vahetuste või isegi automaatsete PHP paikade järel), ebaõnnestuvad üleslaadimised vaikselt.

WordPressi pildi üleslaadimise aken veateatega

Teine põhjuste grupp hõlmab PHP konfiguratsiooni: mälulimiit, upload_max_filesize ja post_max_size parameetrid ning ajutise kausta asukoht. Kui mõni neist parameetritest on puudulik, ei võta WordPress faili vastu. Odavatel jagatud pakettidel kärbivad majutajad puhvreid sageli agressiivsemalt, kui phpinfo() näitab, ja sa näed teadet „HTTP Error" ilma vihjeta tegelikule põhjusele.

WordPressi meediateek puuduvate piltidega

Lõpuks on konfliktid. Turvaplugin püüab POST-päringu kinni, teema kirjutab meedia käsitlemise üle või ModSecurity veebiserveri tasemel peab üleslaadimist ohuks. Diagnostikat käsitletakse järgmises osas.

1. Kontrolli üleslaadimiste kausta õigusi

Kõige levinum põhjus on valed õigused kaustal /wp-content/uploads/. WordPress ei saa kausta kirjutada ja keeldub üleslaadimisest vaikselt. Lahendus: määra õige CHMOD FTP kaudu.

Ühendu oma saidiga FTP kliendi (nt FileZilla) kaudu. Liigu kausta /wp-content/, leia uploads kaust, tee paremklõps ja vali „File permissions":

FTP kontekstimenüü üleslaadimiste kausta failiõiguste valikuga

Avanevas dialoogis sisesta numbriväärtuse väljale 744. Märgi linnuke „Recurse into subdirectories" ja „Apply to directories only." Klõpsa OK.

Dialoog kaustadele 744 õiguste määramiseks FileZillas

Kui 744 ei lahenda probleemi, proovi 755: omanik saab lugemis-, kirjutus- ja käivitusõiguse, samas kui grupp ja teised saavad lugemis- ja käivitusõiguse.

Nüüd määra õigused failidele kaustas uploads. Tee uuesti paremklõps kaustal uploads → „File permissions." Sisesta 644, märgi „Recurse into subdirectories" ja „Apply to files only." Klõpsa OK.

Dialoog failidele 644 õiguste määramiseks FileZillas

Proovi uuesti pilti üles laadida. Enamikul juhtudel kaob viga kohe pärast seda protseduuri. Kui see ei aita, jätka järgmise sammuga.

2. Järgi HTTP vea lahendusahelat

HTTP vead üleslaadimise ajal on kõige frustreerivamad, sest WordPress ei jäta logidesse jälgi. Lihtsalt „HTTP Error" ja ei midagi muud. Pead potentsiaalsed parandused elimineerimismeetodil läbi töötama. Allpool on ahel lihtsast keeruliseni: läbi need järjekorras, kuni üleslaadimised hakkavad tööle.

2.1. Värskenda lehte või vaheta brauserit

See kõlab ilmselgelt, kuid toimib sagedamini, kui arvata oskad. Mõnikord aegub WordPressi sessioon ja pärast uuesti sisselogimist viga kaob. Värskenda lehte kõva vahemälu lähtestamisega: Ctrl+F5 Windowsis, Cmd+Shift+R Macis. Kui see ei aita, ava sait teises brauseris. Kui viga esineb Chrome'is, kuid mitte Firefoxis, peitub probleem just selle brauseri laiendustes või vahemälus.

2.2. Tühjenda brauseri vahemälu

Vahemälu salvestab aegunud skripte ja stiile, mis võivad WordPressi meedia üleslaadijaga konflikti minna. Klaviatuuri otseteed täielikuks lähtestamiseks:

Klaviatuuri otseteed brauseri vahemälu tühjendamiseks Windowsis, Macis ja Safaris
  • Windows (Chrome, Firefox, Edge): Ctrl + Shift + Delete → „Clear browsing data"
  • Mac (Chrome, Firefox): Cmd + Shift + Delete
  • Safari: Shift + click the reload button

Teise võimalusena mine brauseri seadetesse ja kustuta vahemälu käsitsi. Teekond varieerub brauseriti, kuid asub alati jaotises „History" või „Privacy".

2.3. Nimeta pildifail ümber

WordPress lisab automaatselt numbreid korduvatele nimedele (image-1.png, image-2.png), kuid mõnikord see mehhanism tõrgub. Nimeta fail enne üleslaadimist ümber: väldi erimärke, tühikuid ja mitte-ASCII märke nimes. Hea formaat: product-banner-01.jpg.

2.4. Tihenda pilt

Fail võib tabada hostingu piirangut. Isegi kui upload_max_filesize on heldelt seatud, piiravad mõned hostid puhvreid madalamate väärtustega. Pilt tuleb tihendada: JPEG puhul kasuta Imagify või TinyPNG; PNG puhul kasuta Squoosh.

Imagify pildipakkimise plugina liides WordPressis

Kontrolli ka formaati: kui laed üles .png faili, proovi teisendada .jpg-ks ja vastupidi. Mõnikord on probleem seotud konkreetse formaadi ja PHP teegi versiooniga (GD või Imagick).

2.5. Lisapluginate deaktiveerimine ja teema vahetamine

Turvapluginaid (Wordfence, Solid Security, Sucuri) ja pildioptimeerimise pluginaid võivad üleslaadimisi kinni püüda ja põhjustada konflikte. Keela AJUTISELT KÕIK pluginad ja lülitu vaiketeemale (Twenty Twenty-Five või mõni muu vaiketeema). Testi üleslaadimist. Kui see toimib, hakka pluginaid ükshaaval lubama, et süüdlane leida.

2.6. PHP mälulimiidi suurendamine

PHP pilditöötlusprotsess tarbib mälu. JPEG-formaadis täisekraanipildi jaoks ei pruugi isegi 64 MB piisata. Lisa wp-config.php faili enne rida /* That's all, stop editing! */ järgmine:

1define( 'WP_MEMORY_LIMIT', '256M' );

2.7. PHP versiooni uuendamine

  1. aasta seisuga soovitab WordPress minimaalseks versiooniks PHP 8.3, optimaalsed on PHP 8.4 või 8.5. Versioonide 7.4 ja vanemate puhul ei ole meedia üleslaadija funktsionaalsus garanteeritud. Teekond cPanelis: jaotis „Software" → „Select PHP Version" → lülitu versioonile 8.4 või 8.5.
PHP versiooni valik cPanel juhtpaneelil

2.8. ModSecurity keelamine

ModSecurity on veebiserveri taseme tulemüür, mis mõnikord käsitleb pildi üleslaadimist rünnakuna. Lisa .htaccess faili (saidijuure kaustas) järgmine:

1<IfModule mod_security.c>
2SecFilterEngine Off
3SecFilterScanPOST Off
4</IfModule>

Kui see ei aita, eemalda need read: probleem ei ole ModSecuritys.

2.9. WordPressi ümberlülitamine Imagickilt GD teegile

WordPress kasutab pilditöötluseks Imagicki (kui moodul on serverisse paigaldatud) või GD teeki. Imagick pakub kõrgemat kvaliteeti, kuid tarbib rohkem mälu. Kui WP_MEMORY_LIMIT ei aidanud, sunni WordPressi kasutama GD-d. Lisa oma aktiivse teema functions.php faili järgmine:

1function wpb_image_editor_default_to_gd( $editors ) {
2 $gd_editor = 'WP_Image_Editor_GD';
3 $editors = array_diff( $editors, array( $gd_editor ) );
4 array_unshift( $editors, $gd_editor );
5 return $editors;
6}
7add_filter( 'wp_image_editors', 'wpb_image_editor_default_to_gd' );

Pärast seda seab WordPress GD Library ahelas esimeseks ja kasutab Imagicki varuvariandina.

2.10. Paigalda Add From Server alternatiivse üleslaadimismeetodina

Kui HTTP viga püsib ja sul on vaja fail kiiresti üles laadida, lae see FTP kaudu serverisse suvalisse kausta ja impordi meediateeki, kasutades Add From Server. Plugin korjab failid otse failisüsteemist, minnes mööda standardsest WordPressi üleslaadurist. Töötavad igas suuruses failid, mida piirab ainult sinu paketi kettaruum.

2.11. Võta ühendust oma majutusteenuse pakkujaga

Kui oled kõike proovinud, kirjuta majutustoele. Kirjelda viga, lisa ekraanipilt ja täpsusta oma PHP ja WordPressi versioonid. Sageli lahendatakse probleem serveri poolel: tugi saab muuta faili php.ini, eemaldada ModSecurity blokeeringu või taaskäivitada PHP-FPM-i.

3. Paranda viga „Ajutine kaust on puudu"

Viga „Ajutine kaust on puudu" blokeerib mitte ainult piltide üleslaadimist, vaid ka pluginatega seotud paigaldamist ja WordPressi uuendusi. Põhjus: PHP ei leia ajutist kataloogi või ei saa sinna kirjutada.

Lahendus on öelda WordPressile selgesõnaliselt ajutise kausta asukoht. Ava wp-config.php ja lisa enne viimast rida:

1define( 'WP_TEMP_DIR', dirname( __FILE__ ) . '/wp-content/temp/' );

Salvesta fail. Seejärel loo FTP või cPanel-i failihalduri kaudu kaust temp kataloogi /wp-content/ sisse (kui seda veel pole). Määra kausta õigusteks 755. Mine tagasi administraatori paneelile ja proovi uuesti üles laadida.

4. Suurenda üleslaaditava faili suuruse limiiti

Viga „Üleslaaditud fail ületab upload_max_filesize direktiivi" tähendab, et fail on praeguste PHP seadete jaoks liiga suur. Kolm võimalust selle parandamiseks, alates lihtsast kuni serveritasemeni.

4.1..Htaccess-i kaudu

Lisa .htaccess-faili (saidijuurest) järgmine:

1php_value upload_max_filesize 256M

Kui viga kordub, lisa järgmised read:

1php_value post_max_size 256M
2php_value memory_limit 512M
3php_value max_input_time 180
4php_value max_execution_time 180

4.2. Wp-config.php kaudu

Lisa wp-config.php-faili enne viimast rida järgmine:

1@ini_set( 'upload_max_filesize', '256M' );
2@ini_set( 'post_max_size', '256M' );

4.3. Php.ini kaudu

Leia serverist php.ini. Asukoht sõltub hostist; tavaliselt /etc/php/8.4/cli/php.ini või seadistatav cPanel-is („Select PHP Version" → „Switch to PHP Options"). Ava see, otsi üles upload_max_filesize direktiiv ja muuda selle väärtust:

1upload_max_filesize = 256M
2post_max_size = 256M

Salvesta ja taaskäivita PHP cPanel-i või SSH-käsuga. Kui sul pole php.ini-le ligipääsu, võta ühendust hostingu toega.

5. Spetsiifilised lahendused GoDaddy ja DreamHosti jaoks

GoDaddy

GoDaddy jagatud hostingu puhul on HTTP-vead sageli seotud pilditöötlusteekide järjekorraga. Lisa oma aktiivse teema functions.php faili järgmine:

1add_filter( 'wp_image_editors', 'change_graphic_lib' );
2function change_graphic_lib( $array ) {
3 return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
4}

See kood sunnib GD Library olema esimene, mis lahendab enamiku HTTP-vea juhtumeid just GoDaddys.

DreamHost

DreamHostis on vead tavaliselt seotud pluginate või teemade konfliktidega. Esmalt deaktiveeri kõik pluginad ja lülitu vaiketeemale. Kustuta kasutamata teemad ja pluginad, sest need võivad jätta maha surnud konkse, mis segavad üleslaadijat. Kui see ei aita, võta ühendust DreamHosti toega: neil on kohandatud serverikonfiguratsioonid ja nende tugimeeskond tunneb spetsiifikat.

Mida teha, kui viga kordub

Kui oled kogu ahela läbi käinud ja üleslaadimine ikka kord nädalas ebaõnnestub, on probleem sügavam kui õigused või PHP limiidid. Suure tõenäosusega on süüdlane rangeid serveripiiranguid rakendav hosting (odav jagatud pakett) või halvasti kirjutatud plugin, mis kirjutab iga uuendusega meedia üleslaadija seaded üle.

Esmalt välista pluginad: keela kõik 24 tunniks ja jälgi üleslaadija käitumist. Kui 24 tunni jooksul tõrkeid ei esine, hakka pluginaid ühekaupa päevase intervalliga lubama, kuni leiad süüdlase.

Kui sa seda ei leia, vaheta hosti. Tõsiselt. Odavad jagatud paketid hoiavad nii agressiivselt kokku PHP mälu arvelt ja kärbivad puhvreid, et ükski .htaccess-i muudatus ei aita. Stabiilseks WordPressi meediafailide käsitlemiseks on vaja VPS-i või kvaliteetset hallatud hosti, kus memory_limit on vähemalt 256M ja max_execution_time vähemalt 120 sekundit.

Alternatiivne lahendus: laadi pildid üles FTP kaudu ja impordi need Add From Server abil. Aeglasem kui tavaline üleslaadija, kuid töötab igal hostil ega sõltu PHP limiitidest.

⁉️🤔 Korduma kippuvad küsimused

Miks tekivad üleslaadimisvead ilma nähtava põhjuseta?

Hostinguteenuse pakkujad uuendavad regulaarselt serveri tarkvara: väiksemad PHP paigad, Apache'i uuendused, ModSecurity konfiguratsioonimuudatused. Rajad, versioonid ja seaded muutuvad ning /wp-content/uploads/ õigused lähevad katki. Sa ei puutunud midagi, aga üleslaadimine lakkas töötamast. Lahendus: lähtesta kausta õigused 744/755 peale ja failide õigused 644 peale kataloogis /wp-content/uploads/ ning kontrolli PHP limiite.

Mida teha, kui miski selles artiklis ei aidanud?

Luba WP_DEBUG failis wp-config.php: define( 'WP_DEBUG', true ); ja korda üleslaadimist. WordPress kirjutab konkreetse vea faili /wp-content/debug.log. Sa näed täpset PHP fataalset viga või hoiatust: enamasti on selleks mälu ammendumine (allowed memory size exhausted), ligipääsmatu ajutine kaust (failed to open dir) või konkreetne plugina konflikt. Selle info abil saab hostingu tugi probleemi palju kiiremini lahendada.

Kuidas laadida üles väga suurt faili, kui minu hosting ei luba limiiti tõsta?

Kasuta FTP-d + Add From Server pluginat. Laadi fail serverisse käsitsi FTP kaudu kausta /wp-content/uploads/import/ (või mõnda muusse kausta), seejärel impordi see plugina kaudu meediateeki. Add From Server korjab failid otse serveri failisüsteemist, minnes mööda HTTP-üleslaadijast ja kõigist selle piirangutest. See töötab igas suuruses failidega; ainus piirang on sinu paketi kettaruum. Pakettüleslaadimiseks loo kaust /wp-content/uploads/bulk-import/ ja laadi kõik sinna korraga FTP kaudu üles.

Kas piltide üleslaadimise vigu saab jäädavalt vältida?

Neid ei saa täielikult kõrvaldada, kuid riski saab minimeerida. Hoia PHP-d jooksval versioonil (2026. aastal 8.4 või 8.5), memory_limit ei tohi olla madalam kui 256M. Ära paigalda turvapluginaid, millel on agressiivsed vaikeseaded. Kontrolli /wp-content/uploads/ õigusi iga kuue kuu tagant. Pärast iga WordPressi tuuma või PHP uuendust tee test-pildi üleslaadimine. Kui sul on seadistatud automaatsed varukoopiad, võtab tagasipööramine aega 5 minutit. Ja hoia FTP ligipääs käepärast: ilma selleta pole pooled selle artikli lahendused kättesaadavad.

Kas õiguste parandamiseks on vaja FTP-d?

Ei. Alternatiiv on cPanel-i failihaldur (või sinu hosti samaväärne lahendus). Mine Failihaldurisse → /wp-content/ → paremklõps kaustal uploads → Muuda õigusi → määra 744. Loogika on sama, liides on veidi erinev. cPanel-i failihaldur töötab õigustega täpselt nagu FTP-klient: kõik toimub brauseris, ilma et oleks vaja eraldi tarkvara. Kasutajatele, kelle jaoks FTP-kliendid on keerulised, on see kõige kättesaadavam viis õiguste parandamiseks kahe minutiga.

Üleslaadimise viga parandatud, mis edasi?

Oled ahela läbi käinud ja üleslaadimine töötab. Nüüd on aeg ennetuseks, et sa ei peaks kuu aja pärast selle probleemi juurde tagasi pöörduma. Kolm asja, mida tasub kohe teha:

  • Pane kirja oma töötavad seaded. Need õigused (744/755), PHP limiidid (256M), PHP versioon (8.4+): salvesta need oma märkmetesse. Järgmise migratsiooni või serveriuuenduse ajal taastad need minutiga, mitte ei kuluta tundi katse-eksituse meetodil.
  • Seadista kettaruumi monitooring. Pooled „ootamatutest" üleslaadimisvigadest on põhjustatud kettaruumi täis saamisest. WordPress keeldub hääletult kirjutamast ja sina jääd oletama. Tasuta pluginad nagu WP Health kontrollivad vaba ruumi ja saadavad sulle e-kirjaga teavituse, enne kui ketas täis saab.
  • Kontrolli logisid kord kuus. /wp-content/debug.log (kui sa WP_DEBUG lubasid) näitab tekkivat probleemi ammu enne, kui see blokeerivaks muutub. Mõni minut kuus säästab tunde plaaniväliseid remonditöid.

Kas on veel küsimusi või puutusid kokku ebatavalise juhtumiga? Kirjelda olukorda kommentaarides ja me mõtleme selle koos läbi.