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 nový
Wikan 08.03.2023 10:59
Wikan
Tam jsem pochopitelně byl ale nevím jak? nějak mi to nejde :.( díky nový
Víťa 08.03.2023 11:04
Víťa
Pokud neukážeš, jak to děláš, tak ti nikdo chybu nenajde. nový
Wikan 08.03.2023 11:05
Wikan
rename("adresar/soubor.jpg","adresár/".date("h:i m-Y",time().".jpg"); nový
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… nový
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… nový
host 08.03.2023 11:10
host
už mi to kde chyběla tam ještě jedna ) nový
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… nový
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… nový
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… nový
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… nový
Víťa 09.03.2023 12:05
Víťa
Tak snad víš, na co to přejmenováváš, ne? nový
Wikan 09.03.2023 12:34
Wikan
Aktuálním datumem ale ten nebude předem znám !!! :-( díky nový
Víťa 09.03.2023 12:41
Víťa
Při generování názvu souboru snad bude znám !!!!!!!!!!! :-/ nový
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… nový
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… nový
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 nový
Víťa 09.03.2023 19:46
Víťa
Možné to je. Ale co tě k té domněnce vede? nový
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_… nový
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 nový
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… nový
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… nový
Víťa 11.03.2023 10:37
Víťa
Nahradis udaje ve spicatych zavorkach a dostanes zpet "refresh token" nový
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… nový
Víťa 13.03.2023 10:49
Víťa
špičaté = většítko+menšítko REFRESH_TOKEN APP_KEY APP_SECRET nový
gilhad 13.03.2023 12:24
gilhad
:-[ nechápu příklad bych potřeboval :.( díky nový
Víťa 13.03.2023 12:39
Víťa
<špičaté závorky> nový
jirka44 13.03.2023 14:19
jirka44
< > Ok ,No ale kde ten nový token vezmu ? :.( díky nový
Víťa 13.03.2023 14:36
Víťa
Zavoláním toho requestu. nový
Wikan 13.03.2023 14:38
Wikan
Myslíš tohoto ? curl https://api.dropbox.com/oauth2/token \ -d grant_type=refresh_token \ -d refres… nový
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… nový
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… nový
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 nový
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: nový
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… nový
Wikan 16.03.2023 12:01
Wikan
Tak [96785-dropbox-pristup-jpg]:.( díky edit omlouvám se za malé skeny nový
Víťa 16.03.2023 12:50
Víťa
Ty špičaté závorky tam samozřejmě být nemají. nový
Wikan 16.03.2023 13:18
Wikan
$refresh_token = $response['refresh_token']; Notice: Undefined index: refresh_token in /home/users/… nový
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. nový
Wikan 16.03.2023 15:24
Wikan
<?php $code = "xxxxxx"; $client_id = "xxxxx"; $client_secret = "xxxxxxxx"; $ch = curl_init(); curl_… nový
Víťa 16.03.2023 15:46
Víťa
Pravděpodobně jsi špatně zadal ty hodnoty do prvních třech řádků. nový
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… nový
Víťa 16.03.2023 16:14
Víťa
Ano. nový
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 [… nový
Víťa 17.03.2023 11:08
Víťa
To je správně. nový
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… nový
Víťa 17.03.2023 11:57
Víťa
Co kdybys radši napsal, jakou respose ti to vrací? nový
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á… nový
Víťa 17.03.2023 12:30
Víťa
echo $response; nový
Wikan 17.03.2023 12:44
Wikan
<?php $code = "xxxxxx"; $client_id = "xxxxx"; $client_secret = "xxxxxxxx"; $ch = curl_init(); curl_s… nový
Víťa 17.03.2023 13:52
Víťa
Jenže na blbý místo: curl_close($ch); echo $response; nový
Wikan 17.03.2023 13:54
Wikan
{"error": "invalid_grant", "error_description": "code doesn't exist or has expired"} díky nový
Víťa 17.03.2023 13:59
Víťa
$code = "xxxxxx"; Máš nejspíš špatně vyplněné. nový
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… nový
Víťa 17.03.2023 14:29
Víťa
Tu mezeru na začátku tam máš schválně? nový
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ď… nový
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… nový
Wikan 17.03.2023 15:00
Wikan
Já uploaduji soubory tímto skriptem echo ($cas); $path = $jsoubor; $fp = fopen($path, 'rb'); $size… nový
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. nový
Wikan 17.03.2023 16:37
Wikan
Já když to dám dohromady $cheaders = array("Authorization: Bearer .$access_token",'Content-Type: ap… nový
Víťa 17.03.2023 16:46
Víťa
Proč máš před tím tokenem tu tečku? nový
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… nový
Víťa 17.03.2023 16:59
Víťa
Takže už to funguje? nový
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… nový
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… nový
host 11.03.2023 12:48
host

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

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

$path = 'example.txt';
$fp = fopen($path, 'rb');
$size = filesize($path);

a to předem neví jak se bude jmenovat ten soubor ,tak jak se to udělat ? díky

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

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

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.

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

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