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.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...