Pereiti prie turinio

getimagesize() ir unlink()


Rekomenduojami pranešimai

Sveiki,

Susidūriau su kvaila, tačiau man neišsprendžiama problema. Po VPS OS perrašymo neveikia funkcijos getimagesize() ir unlink(). Gaunu klaidos pranešimą:

 

getimagesize() klaida:

Warning: getimagesize() [function.getimagesize]: Unable to access images/avatars/jamesav.jpg in /var/customers/webs/manjack/user/edit_profile.php on line 88

Warning: getimagesize(images/avatars/jamesav.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /var/customers/webs/manjack/user/edit_profile.php on line 88

 

88 Eilutė tokia:

$size = getimagesize($avatars_dir.$name);

 

unlink() klaida:

unlink(images/avatars/jamesav.jpg) [function.unlink]: No such file or directory in /var/customers/webs/manjack/user/edit_profile.php on line 133

 

133 eilutė:

unlink(IMAGES."avatars/".$udata['user_avatar']);

 

 

Įdomiausia tai jog visa tai veikė prieš OS keitimą. Manau, kad tau konfigūracinė priblema. Gal galite padėti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Problema, spėju, tame, kad naudoji reliatyvius kelius ir failas edit_profile.php bei katalogas images/ nėra tam pačiam kataloge. Jeigu taip, sprendimai galimi keli: apsirašyti kur nors šakninį aplikacijos kelią kaip konstantą ir jį prijungti prie minėtų kelių, pradžioje. Kitas sprendimas - įterpti katalogą, esantį virš images/ į "include path'ą"

Nuoroda į pranešimą
Dalintis kituose puslapiuose
O kas dėl CR1M1N4L varianto tai jis gali ir suveikti, nes images/ ir edit_profile.php nėra vienoje direktorijoje :)

 

Asmeniškai aš, kiekvienoj aplikacijoj, bootstrap'iniam arba konfigūraciniam faile, apsirašau konstantą:

define ('DOCS_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/app_katalogas/');

Tavo, atveju, manau, turėtų būti:

define ('DOCS_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/manjack/');

Tuomet, ten, kur kreipiamasi į kokį nors failą (įterpiant, šalinant dar ką kitą darant), priekyje, įterpiu šią konstantą. Tavo atveju, turėtų (galbūt) būti taip:

$size = getimagesize(DOCS_ROOT . $avatars_dir . $name);

Sujungus konstantą ir kintamuosius, šiai funkcijai turėtų būti perduota:

/var/customers/webs/manjack/images/avatars/jamesav.jpg

 

 

Kitas variantas, kuris galbūt padėtų - failo edit_profile.php pradžioje galėtum įrašyti:

chdir('..');

Asmeniškai, rekomenduočiau pirmąjį.

Redagavo CR1M1N4L
Nuoroda į pranešimą
Dalintis kituose puslapiuose
CR1M1N4L, perskaičiau tavo pasiūlytą sprendimą ir supratau, kad jis man netinka. Pas mane jau yra apibrėžtas tavo vadinamas DOCS_ROOT. Manau čia ne kelio, o VPS konfigūracinė problema, nes iki perinstaliavimo ant kito valdymo skydo viskas veikė puikiai ;)

 

Na, jei apibrėžtas, tai kodėl nenaudoji jo? Savaime jis nepasinaudoja vien nuo to, kad aprašai. Ar bandei prijungti į prie perduodamų path'ų ir supratai, kad nepadeda visgi?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Sukurti naują...

Svarbi informacija

Informuojame, kad šiame puslapyje naudojami slapukai (angl. cookies). Sutikdami, paspauskite mygtuką „Sutinku“ arba naršykite toliau. Savo duotą sutikimą bet kada galėsite atšaukti pakeisdami savo interneto naršyklės nustatymus ir ištrindami įrašytus slapukus.