Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem [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

Předmět Autor Datum
https://www.php.net/manual/en/function.rename.php
Wikan 08.03.2023 10:59
Wikan
Tam jsem pochopitelně byl ale nevím jak? nějak mi to nejde :.( díky
Víťa 08.03.2023 11:04
Víťa
Pokud neukážeš, jak to děláš, tak ti nikdo chybu nenajde.
Wikan 08.03.2023 11:05
Wikan
rename("adresar/soubor.jpg","adresár/".date("h:i m-Y",time().".jpg");
Víťa 08.03.2023 11:09
Víťa
1. Nemáš uzavřenou funkci date(), chybí ti tam závorka. 2. Pokud chceš, aby to zůstalo ve stejném ad…
Wikan 08.03.2023 11:13
Wikan
nějak mi to nejde Asi to je rozbitý. Na té stránce jsou i příklady, to snad nejde opsat špatně. I…
host 08.03.2023 11:10
host
už mi to kde chyběla tam ještě jedna )
Víťa 08.03.2023 11:14
Víťa
No jo, školácká chyba. ;-) Editor většinou ukazuje párové závorky, např. PSPad. A server (třeba Apac…
host 08.03.2023 11:25
host
Ano používám taky PSPad a ukazuje neparovanou ) taky na serveru mě se ukazuje ve kterém řádku a co z…
Víťa 08.03.2023 14:12
Víťa
No tak logicky buď musíš soubor přejmenovat až po přenesení nebo vytvořit kopii, tu přejmenovat, pře…
host 08.03.2023 14:47
host
Nu dobrá tak jsem to zkopíroval do druhé složky a přejmenoval ale jak ten php skript https://unax.or…
Víťa 09.03.2023 12:05
Víťa
Tak snad víš, na co to přejmenováváš, ne?
Wikan 09.03.2023 12:34
Wikan
Aktuálním datumem ale ten nebude předem znám !!! :-( díky
Víťa 09.03.2023 12:41
Víťa
Při generování názvu souboru snad bude znám !!!!!!!!!!! :-/
host 09.03.2023 12:49
host
Myslíš tak ? $path = "IPkamera1-1/".date("h:i m-Y",time()).".jpg" není to ono ,sice se tam na drop…
Víťa 09.03.2023 13:15
Víťa
Ne, ty bys potřeboval si vygenerovat nové jméno souboru do proménné, soubor podle ní přejmenovat a p…
Wikan 09.03.2023 14:04
Wikan
To už jsem nějak vyřešil , ale zdá se mi že token má omezenou platnost je to možné ? :-| díky
Víťa 09.03.2023 19:46
Víťa
Možné to je. Ale co tě k té domněnce vede?
Wikan 09.03.2023 20:02
Wikan
Protože když později provedu skript tak mě to vypíše 08:05 03-2023{"error_summary": "expired_access_…
Víťa 09.03.2023 20:10
Víťa
Čím to může být ta omezená exspirace? mě napadá jestli to nesouvisí že je to neplacené nevím díky
Víťa 10.03.2023 11:26
Víťa
Je to omezení tím, že se Dropbox rozhodl, že to omezené bude. Tady je popsané, jak to obnovovat: dev…
Wikan 10.03.2023 11:55
Wikan
Já bych na tom strávil mnoho času než bych se dobral nějakého funkčního skriptu ,potřeboval bych pom…
Víťa 11.03.2023 10:37
Víťa
Nahradis udaje ve spicatych zavorkach a dostanes zpet "refresh token"
Jan Fiala 11.03.2023 11:08
Jan Fiala
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 tok…
Víťa 13.03.2023 10:49
Víťa
špičaté = většítko+menšítko REFRESH_TOKEN APP_KEY APP_SECRET
gilhad 13.03.2023 12:24
gilhad
:-[ nechápu příklad bych potřeboval :.( díky
Víťa 13.03.2023 12:39
Víťa
<špičaté závorky>
jirka44 13.03.2023 14:19
jirka44
< > Ok ,No ale kde ten nový token vezmu ? :.( díky
Víťa 13.03.2023 14:36
Víťa
Zavoláním toho requestu.
Wikan 13.03.2023 14:38
Wikan
Myslíš tohoto ? curl https://api.dropbox.com/oauth2/token \ -d grant_type=refresh_token \ -d refres…
Víťa 13.03.2023 14:54
Víťa
Tady jsem našel něco https://gist.github.com/phuze/755dd1f58fba6849fbf7478e77e2896a ale zas je tam n…
Víťa 16.03.2023 11:19
Víťa
Kvůli zavolání jednoho requestu celou novou knihovnu? No jak chceš. https://docs.guzzlephp.org/en/st…
Wikan 16.03.2023 11:26
Wikan
No já nevím jak to udělat jinak!! jestli víš tak sem s tím díky
Víťa 16.03.2023 11:29
Víťa
Ve větě tázací se píše otazník a ne dva vykřičníky. :i:
host 16.03.2023 11:33
host
Najdi si v nastavení v Dropboxu App Key a App Secret (jsou na stejné stránce jako byl ten původní to…
Wikan 16.03.2023 12:01
Wikan
Tak [96785-dropbox-pristup-jpg]:.( díky edit omlouvám se za malé skeny
Víťa 16.03.2023 12:50
Víťa
Ty špičaté závorky tam samozřejmě být nemají.
Wikan 16.03.2023 13:18
Wikan
$refresh_token = $response['refresh_token']; Notice: Undefined index: refresh_token in /home/users/…
Víťa 16.03.2023 13:53
Víťa
Zavolal jsi to špatně, takže v odpovědi ten token není. Víc se z toho nedá poznat.
Wikan 16.03.2023 15:24
Wikan
<?php $code = "xxxxxx"; $client_id = "xxxxx"; $client_secret = "xxxxxxxx"; $ch = curl_init(); curl_…
Víťa 16.03.2023 15:46
Víťa
Pravděpodobně jsi špatně zadal ty hodnoty do prvních třech řádků.
Wikan 16.03.2023 15:59
Wikan
Jen se ujišťuji má to tak být ? díky 2 řádek $client_id = App key 3 řádek $client_secret = App secre…
Víťa 16.03.2023 16:14
Víťa
Ano.
Wikan 16.03.2023 16:56
Wikan
Tak ještě mi napadlo jestli to mám dobře nastaveno já tam mám nastaveno Allow je to zprávně ? díky […
Víťa 17.03.2023 11:08
Víťa
To je správně.
Wikan 17.03.2023 11:43
Wikan
Možná jsem udělal někde chybu při vytváření my apps co kdybych ji smazal a vytvořil novou ? jestli a…
Víťa 17.03.2023 11:57
Víťa
Co kdybys radši napsal, jakou respose ti to vrací?
Wikan 17.03.2023 12:24
Wikan
jakou respose ti to vrací? Nevím o čem je řeč jsem lama :-[ já se omlouvám za neznalost jak to má…
Víťa 17.03.2023 12:30
Víťa
echo $response;
Wikan 17.03.2023 12:44
Wikan
<?php $code = "xxxxxx"; $client_id = "xxxxx"; $client_secret = "xxxxxxxx"; $ch = curl_init(); curl_s…
Víťa 17.03.2023 13:52
Víťa
Jenže na blbý místo: curl_close($ch); echo $response;
Wikan 17.03.2023 13:54
Wikan
{"error": "invalid_grant", "error_description": "code doesn't exist or has expired"} díky
Víťa 17.03.2023 13:59
Víťa
$code = "xxxxxx"; Máš nejspíš špatně vyplněné.
Wikan 17.03.2023 14:03
Wikan
Jako vždy máš pravdu Refresh Token mám ale když upravím ten druhý skript $refresh_token = " xxxxxxx…
Víťa 17.03.2023 14:29
Víťa
Tu mezeru na začátku tam máš schválně?
Wikan 17.03.2023 14:30
Wikan
Zase mám pravdu Access Token: mám, chyba byla mezi klávesnicí a židlí :-) už je to v pořádku .A teď…
Víťa 17.03.2023 14:40
Víťa
V té response máš i délku platnosti - myslím, že je v sekundách. Nicméně nevidím důvod, proč bys nem…
Wikan 17.03.2023 15:00
Wikan
Já uploaduji soubory tímto skriptem echo ($cas); $path = $jsoubor; $fp = fopen($path, 'rb'); $size…
Víťa 17.03.2023 16:31
Víťa
Ten si může vygenerovat v rámci toho samého skriptu. Stačí ty dva kódy dát dohromady.
Wikan 17.03.2023 16:37
Wikan
Já když to dám dohromady $cheaders = array("Authorization: Bearer .$access_token",'Content-Type: ap…
Víťa 17.03.2023 16:46
Víťa
Proč máš před tím tokenem tu tečku?
Wikan 17.03.2023 16:51
Wikan
protože řetězce se spojují tečkou :-| nic méně po její odstranění pořád stejný výsledek díky edit be…
Víťa 17.03.2023 16:59
Víťa
Takže už to funguje?
Wikan 17.03.2023 17:19
Wikan
Funguje díky poslední
Víťa 17.03.2023 17:51
Víťa
Dobrý den. Toto je Bing. Můžu vám pomoci s přejmenováním souboru pomocí php na Dropboxu. Podle výsle…
Jan Fiala 11.03.2023 11:11
Jan Fiala
Týýýjo, Bing se naboural do profilu Jana Fialy a pod jeho jménem tady rozdává rady! No jo, umělá int…
host 11.03.2023 12:48
host

Myslíš tak ?

$path = "IPkamera1-1/".date("h:i m-Y",time()).".jpg"

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

$path = $jsoubor; 

díky

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

curl https://api.dropbox.com/oauth2/token \
    -d grant_type=refresh_token \
    -d refresh_token=<REFRESH_TOKEN> \
    -d client_id=<APP_KEY> \
    -d client_secret=<APP_SECRET>

ale já nevím jestli to ono a za druhé nevím co tam mám upravit pro můj přístup :-( díky

Myslíš tohoto ?

curl https://api.dropbox.com/oauth2/token \
    -d grant_type=refresh_token \
    -d refresh_token=<REFRESH_TOKEN> \
    -d client_id=<APP_KEY> \
    -d client_secret=<APP_SECRET>

-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

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:

https://www.dropbox.com/oauth2/authorize?client_id=<APP_KEY>&token_access_type=offline&response_type=code

<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.

<?php
$code = "<autorizační kód získaný výše>";
$client_id = "<APP_KEY>";
$client_secret = "<APP_SECRET>";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.dropbox.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=authorization_code&code=$code&client_id=$client_id&client_secret=$client_secret");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

curl_close($ch);

$response = json_decode($response, true);

$refresh_token = $response['refresh_token'];

echo "Refresh Token: $refresh_token";
?>

Tím bys měl získat Refresh Token, který neexpiruje (díky token_access_type=offline) na začátku.

No a nakonec zavoláš:

<?php
$refresh_token = "<REFRESH_TOKEN>";
$client_id = "<APP_KEY>";
$client_secret = "<APP_SECRET>";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.dropboxapi.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=refresh_token&refresh_token=$refresh_token&client_id=$client_id&client_secret=$client_secret");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

curl_close($ch);

$response = json_decode($response, true);

$access_token = $response['access_token'];

echo "Access Token: $access_token";
?>

Címž pokaždé získáš platný Access Token.


<?php
$code = "xxxxxx";
$client_id = "xxxxx";
$client_secret = "xxxxxxxx";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.dropbox.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=authorization_code&code=$code&client_id=$client_id&client_secret=$client_secret");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

curl_close($ch);

$response = json_decode($response, true);

$refresh_token = $response['refresh_token'];

echo "Refresh Token: $refresh_token";

?>

Co bych zase mohl z vrtat ? :-( díky

<?php
$code = "xxxxxx";
$client_id = "xxxxx";
$client_secret = "xxxxxxxx";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.dropbox.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=authorization_code&code=$code&client_id=$client_id&client_secret=$client_secret");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

curl_close($ch);

$response = json_decode($response, true);

$refresh_token = $response['refresh_token'];

echo "Refresh Token: $refresh_token";

echo $response ;//*******  pridano  ********

?>

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

Jako vždy máš pravdu Refresh Token mám ale když upravím ten druhý skript

$refresh_token = " xxxxxxxxxxxxxxxxxxxx";
$client_id = "xxxxxxxx";
$client_secret = "xxxxxxxx";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.dropboxapi.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=refresh_token&refresh_token=$refresh_token&client_id=$client_id&client_secret=$client_secret");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);

curl_close($ch);
echo $response;// *******pridano********

$response = json_decode($response, true);

$access_token = $response['access_token'];

echo "Access Token: $access_token";  
?>

to znamená doplním Refresh Token co jsem získal tak
{"error": "invalid_grant", "error_description": "refresh token is malformed"}

díky

Já uploaduji soubory tímto skriptem

echo ($cas);
$path = $jsoubor;
$fp = fopen($path, 'rb');
$size = filesize($path);

$cheaders = array("Authorization: Bearer xxxxxxxxxtokem ",'Content-Type: application/octet-stream','Dropbox-API-Arg: {"path":"/xxxxxx/'.$path.'", "mode":"add"}');


$ch = curl_init('https://content.dropboxapi.com/2/files/upload');

curl_setopt($ch, CURLOPT_HTTPHEADER, $cheaders);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, $size);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

echo $response;
curl_close($ch);
fclose($fp);
unlink($jsoubor);

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

Já když to dám dohromady

$cheaders = array("Authorization: Bearer .$access_token",'Content-Type: application/octet-stream','Dropbox-API-Arg: {"path":"/xxxxx/'.$path.'", "mode":"add"}');

tak dostanu
Access Token: xxxxxxxx Error in call to API function "files/upload": The given OAuth 2 access token is malformed.

Dobrý den. Toto je Bing. Můžu vám pomoci s přejmenováním souboru pomocí php na Dropboxu. Podle výsledků vyhledávání¹² musíte použít metodu /2/files/move_v2 z Dropbox API. Tato metoda přesune nebo přejmenuje soubor nebo složku na Dropboxu podle zadaných cest.

Například, pokud chcete přejmenovat složku "ABC" na "ACB" uvnitř složky "home", musíte nastavit from_path="/home/ABC" a to_path="/home/ACB". Pokud chcete přesunout soubor z jedné složky do druhé, musíte změnit obě cesty.

Pokud chcete použít funkci php rename()³, musíte mít soubor nebo složku uloženou lokálně na vašem serveru a zadat starou a novou cestu jako parametry funkce.

Máte nějaké další dotazy ohledně přejmenování souboru pomocí php na Dropboxu?

Zdroj: Konverzace s Bingem, 11. 3. 2023(1) rename folder name in dropbox using api php - Stack Overflow. https://stackoverflow.com/questions/69984243/rename-folder-name-in-dropbox-using-api-php Přístup 11. 3. 2023.
(2) How to use Dropbox API v2 to rename a file - Stack Overflow. https://stackoverflow.com/questions/34220574/how-to-use-dropbox-api-v2-to-rename-a-file Přístup 11. 3. 2023.
(3) PHP rename() Function - W3Schools. https://www.w3schools.com/php/func_filesystem_rename.asp Přístup 11. 3. 2023.

Zpět do poradny Odpovědět na původní otázku Nahoru