[PHP] přejmenovaní souboru
Zdravím
Zas něco potřebuji mám soubor v adresáři například "adresar/jménosouboru.jpg" a já bych potřeboval ho přejmenovat "adresar/date("h:i m-Y",time()); čili nechat ten adresář stejný ale a ten soubor přejmenovat aktuálním časem ,jak to udělat ? díky
https://www.php.net/manual/en/function.rename.php
Tam jsem pochopitelně byl ale nevím jak? nějak mi to nejde díky
Pokud neukážeš, jak to děláš, tak ti nikdo chybu nenajde.
1. Nemáš uzavřenou funkci date(), chybí ti tam závorka.
2. Pokud chceš, aby to zůstalo ve stejném adresáři, tak "adresár" asi nebude úplně dobře.
Asi to je rozbitý.
Na té stránce jsou i příklady, to snad nejde opsat špatně. I když ...
už mi to kde chyběla tam ještě jedna )
No jo, školácká chyba. Editor většinou ukazuje párové závorky, např. PSPad. A server (třeba Apache) taky vypíše, na kterém řádku je chyba a jaká.
Ano používám taky PSPad a ukazuje neparovanou ) taky na serveru mě se ukazuje ve kterém řádku a co za chybu akorát ne pořadí .
Ještě mi vrtá jedna věc já když si to přenesu na ten Dropbox až tam aby se projevila změna jména !!!! díky
No tak logicky buď musíš soubor přejmenovat až po přenesení nebo vytvořit kopii, tu přejmenovat, přenést a pak smazat (příp. rovnou přesunout).
Nu dobrá tak jsem to zkopíroval do druhé složky a přejmenoval ale jak ten php skript https://unax.org/upload-file-in-dropbox-via-php-and-curl/ co to posílá na ten dropbox má pevně definovanou cestu
a to předem neví jak se bude jmenovat ten soubor ,tak jak se to udělat ? díky
Tak snad víš, na co to přejmenováváš, ne?
Aktuálním datumem ale ten nebude předem znám !!! díky
Při generování názvu souboru snad bude znám !!!!!!!!!!!
Myslíš tak ?
není to ono ,sice se tam na dropbox něco přenese ale není to platní soubor .Já bych potřeboval se juknout do adresáře natáhnout jméno souboru do proměnné třeba $jsoubor a pak ji přiřadit
díky
Ne, ty bys potřeboval si vygenerovat nové jméno souboru do proménné, soubor podle ní přejmenovat a pak ji použít pro ten přenos.
A nebo se na to vykašlat, protože mám dojem, že ten skript pro Dropbox umožňuje nastavit cílové jméno souboru.
To už jsem nějak vyřešil , ale zdá se mi že token má omezenou platnost je to možné ? díky
Možné to je. Ale co tě k té domněnce vede?
Protože když později provedu skript tak mě to vypíše
08:05 03-2023{"error_summary": "expired_access_token/", "error": {".tag": "expired_access_token"}}
Čím to může být ta omezená exspirace? mě napadá jestli to nesouvisí že je to neplacené nevím díky
Je to omezení tím, že se Dropbox rozhodl, že to omezené bude. Tady je popsané, jak to obnovovat:
developers.dropbox.com
Já bych na tom strávil mnoho času než bych se dobral nějakého funkčního skriptu ,potřeboval bych pomoct nějaký jednoduchý zdroják ,
tady na té pod stránce v tom tvém odkazu co si mi napsal https://www.dropbox.com/developers/documentation/http/documentation#oauth2-token jsem našel něco
Example: refresh token request
ale já nevím jestli to ono a za druhé nevím co tam mám upravit pro můj přístup díky
Nahradis udaje ve spicatych zavorkach a dostanes zpet "refresh token"
Možná se ještě víc ztrapním než jsem ale v jakých špičatých závorkách ? jak mi přestane platnost tokenu tak se přihlásím do dropboxu tam si vygeneruji nový token a nahradím ho v mém php skriptu, a to dělám manuálně já to potřebuji aby to fungovalo automaticky. díky
špičaté = většítko+menšítko
REFRESH_TOKEN APP_KEY APP_SECRET
nechápu příklad bych potřeboval díky
<špičaté závorky>
< > Ok ,No ale kde ten nový token vezmu ? díky
Zavoláním toho requestu.
Myslíš tohoto ?
-d client_id=<APP_KEY> \
-d client_secret=<APP_SECRET>
ale tady musím dát ty moje přihlašovací údaje, je otázka kde je najdu po přihlášení
já bych potřeboval nějaký vzorový příklad abych tak netápal protože "objevuji ameriku " toto je pro mně nové díky
Tady jsem našel něco https://gist.github.com/phuze/755dd1f58fba6849fbf7478e77e2896a ale zas je tam nová třída GuzzleHttp jak ji nainstalovat na server ? díky
Kvůli zavolání jednoho requestu celou novou knihovnu? No jak chceš.
https://docs.guzzlephp.org/en/stable/overview.html#installation
No já nevím jak to udělat jinak!! jestli víš tak sem s tím díky
Ve větě tázací se píše otazník a ne dva vykřičníky.
Najdi si v nastavení v Dropboxu App Key a App Secret (jsou na stejné stránce jako byl ten původní token).
V browseru si otevři adresu:
<APP_KEY> samozřejmě nahraď za vlastní.
Povol, na co se tě to tam ptá až se dostaneš na stránku "Access Code Generated". Ten kód si zkopíruj, schovej a nikomu ho neukazuj.
Tím bys měl získat Refresh Token, který neexpiruje (díky token_access_type=offline) na začátku.
No a nakonec zavoláš:
Címž pokaždé získáš platný Access Token.
Tak díky
edit
omlouvám se za malé skeny
Ty špičaté závorky tam samozřejmě být nemají.
Notice: Undefined index: refresh_token in /home/users/xxxxxx/xxxxxxxe/frestoken.php on line 20
Refresh Token: díky
Zavolal jsi to špatně, takže v odpovědi ten token není. Víc se z toho nedá poznat.
Co bych zase mohl z vrtat ? díky
Pravděpodobně jsi špatně zadal ty hodnoty do prvních třech řádků.
Jen se ujišťuji má to tak být ? díky
2 řádek $client_id = App key
3 řádek $client_secret = App secret
Ano.
Tak ještě mi napadlo jestli to mám dobře nastaveno já tam mám nastaveno Allow je to zprávně ? díky
To je správně.
Možná jsem udělal někde chybu při vytváření my apps co kdybych ji smazal a vytvořil novou ? jestli ano tak s jakým nastavením ? díky
Co kdybys radši napsal, jakou respose ti to vrací?
Nevím o čem je řeč jsem lama já se omlouvám za neznalost jak to má zjistit ? díky
Notice: Undefined index: refresh_token in /home/users/xxxxxx/xxxxxxx/xxx/refrestoken.php on line 20
Refresh Token:
Notice: Array to string conversion in /home/users/xxxxx/xxxxxx/xxx/refrestoken.php on line 23
Array
takový výsledek je díky
Jenže na blbý místo:
{"error": "invalid_grant", "error_description": "code doesn't exist or has expired"} díky
Máš nejspíš špatně vyplněné.
Jako vždy máš pravdu Refresh Token mám ale když upravím ten druhý skript
to znamená doplním Refresh Token co jsem získal tak
{"error": "invalid_grant", "error_description": "refresh token is malformed"}
díky
Tu mezeru na začátku tam máš schválně?
Zase mám pravdu Access Token: mám, chyba byla mezi klávesnicí a židlí už je to v pořádku .A teď do kdy mě to bude platit ?nebo co dělat až to přestane platit ? veliké díky
V té response máš i délku platnosti - myslím, že je v sekundách. Nicméně nevidím důvod, proč bys nemohl ten poslední skript zavolat pokaždé, než začneš uploadovat soubory.
Já uploaduji soubory tímto skriptem
a ten token si musím vygenerovat napřed ,tak že mě to nefunguje jak ty popisuješ abych si provedl ten skript Access Token a pak tímto výše uvedeným skriptem upload soubory díky
Ten si může vygenerovat v rámci toho samého skriptu. Stačí ty dva kódy dát dohromady.
Já když to dám dohromady
tak dostanu
Access Token: xxxxxxxx Error in call to API function "files/upload": The given OAuth 2 access token is malformed.
Proč máš před tím tokenem tu tečku?
protože řetězce se spojují tečkou nic méně po její odstranění pořád stejný výsledek díky
edit beru zpět já v tom mám takový "hokej" já jsem tu tečku odstranil s jiného skriptu špatně zapamatovatelném a tudíž přejmenovaném díky
Takže už to funguje?
Funguje díky
Týýýjo, Bing se naboural do profilu Jana Fialy a pod jeho jménem tady rozdává rady! No jo, umělá inteligence.