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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
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
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
Čí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
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
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
$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… 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

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

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

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