Hi allemaal,

Ik ben met een website bezig dat onedrive API's gebruikt om een bestand te downloaden.
Dit doe ik dmv een "pre-authenticated" URL dat vanuit de API komt.

Ik gebruik simpelweg:
<?php
header('Location: ' . $getFileData->{"@microsoft.graph.downloadUrl"}, true, 301);;
?>


Vanuit een browser werkt het prima, en krijg ik ook de filename van het werkelijke bestand.
Maar als ik nou via een CLI programma van derde, of zelfs gewoon met "wget" mijn download.php url aanroep, krijg ik niet het werkelijke bestandsnaam, maar mijn download.php?id=1 als bestandsnaam.

Hopelijk is dit te fixen ZONDER de file werkelijk op de webserver zelf te hebben, ik vermoed dat het iets met headers te maken heeft, maar ik snap het niet helemaal dus heb alles weer weg gehaald, behalve de redirect
Mis je geen Location of Redirect o.i.d. ervoor?
- Ariën - op 13/09/2023 21:46:30

Mis je geen Location of Redirect o.i.d. ervoor?


Sorry je hebt gelijk, heb de header nu copy/pasted

Werkelijke wget voorbeeld:

# wget "http://admin:pass@localhost/odrive/download.php?id=16"

--2023-09-13 22:06:49--  http://admin:*password*@localhost/odrive/download.php?id=16
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://xxxxx-my.sharepoint.com/xxxxx/xxxxx/download.aspx?myAuthenticatedUrl&ApiVersion=2.0 [following]
--2023-09-13 22:06:49--  https://xxxxx-my.sharepoint.com/xxxxx/xxxxx/download.aspx?myAuthenticatedUrl&ApiVersion=2.0
Resolving xxxxx-my.sharepoint.com (xxxxx-my.sharepoint.com)... 2620:1::8, 13.13.138.8
Connecting to xxxxx-my.sharepoint.com (xxxxx-my.sharepoint.com)|2620:1::8|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 375664576 (358M) [application/octet-stream]
Saving to: ‘download.php?id=16’

Reageren