Käytän MAMP:ia ja koetan tallentaa 'imagejpeg' -funktiolla pienentämäni kuvan 'kuvat' -kansioon, mutta 'is_writable' -funktio sanoo, ettei minulla ole oikeuksia kansioon eikä tallennus siksi onnistu. Annoin kansioon täydet oikeudet eikä tämä silti vaikuta asiaan. Mistä se vielä tökkii?
Miten olet antanut ”täydet oikeudet”? Millä käyttäjällä MAMP toimii? Mikä käyttäjä ja ryhmä hakemiston omistaa? Onko asetettu muille käyttäjille tai ryhmille erillisiä oikeuksia ACL:n kautta?
Macilla hiiren oikealla painikkeella valitsin 'get info' ja sieltä alhaalta löytyi kohta 'sharing & permissions'. Sen jälkeen vielä tarkistin, että varmasti on täydet oikeudet terminaalin kautta, jossa oikeuksiksi näytti 'drwxrwxrwx' (eli tieten sama kuin 0777 ?). Eli kaikilla ryhmillä on (kai?) siis täydet oikeudet kaikkeen. En tiedä millä käyttäjällä MAMP toimii, mutta ei minulla ole koneella muita käyttäjiä kuin tämä mitä käytän (+ Guest), joten kai se tällä toimii. Hakemiston omistajuutta en tiedä, mutta kai sekin on tällä käyttäjällä, kun muita ei ole.
Onko polku varmasti oikea? Pystytkö lukemaan hakemiston sisältöä?
Ratkaisu löytyi ja tietysti kaikki johtui omasta huolimattomuudesta. Luulin tarkistavani, että polku löytyy ja siihen on kirjoitusoikeudet (is_dir ja is_writable). Huomasin kuitenkin, että ehdot meni väärinpäin. Oli
vaikka piti olla päinvastoin !is_dir($target) ja sama virhe oli is_writable -funktion kanssa. Kun olin nuo korjannut, niin sain ilmoituksen Warning: imagejpeg(kuvat) failed to open stream: Is a directory in ... Tämän ongelma oli siinä, että olin antanut imagejpeg -funktion toiseksi parametriksi ainoastaan hakemiston, jonne tallennetaan, ilman itse tiedoston nimeä ja päätettä. Tämän jälkeen kuvan tallentaminen onnistui ongelmitta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.