Brauchen Sie Hilfe
-
- Beiträge: 1
- Registriert: Di 4. Jul 2023, 05:29
Brauchen Sie Hilfe
Ich stehe vor der Aufgabe, eine oder mehrere PDF-Dateien mithilfe eines Lazarus-Programms auf einen NextCloud-Server hochzuladen. Leider sind meine Kenntnisse über die WebDAV-API von NextCloud recht begrenzt. Gibt es jemanden, der in dieser Angelegenheit Hilfe oder Rat geben könnte? Wir würden uns sehr über Ihre Hilfe freuen.
-
- Lazarusforum e. V.
- Beiträge: 129
- Registriert: Sa 26. Mai 2012, 17:31
- OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
- CPU-Target: 64Bit
Re: Brauchen Sie Hilfe
via "net use" oder Netzwerklaufwek verbinden im Explorer sollte sich dein WebDav-Server einrichten lassen.
Der Rest ist copy...
--
just my 2 beer
Der Rest ist copy...
--
just my 2 beer
just my two Beer
Re: Brauchen Sie Hilfe
Wenn Sie sich nur mit einem Login und einem Passwort anmelden (keine 2FA), können Sie wie folgt vorgehen:
Code: Alles auswählen
uses
fphttpclient, opensslsockets,
base64;
procedure TForm1.Button1Click(Sender: TObject);
const
url = 'https://nextcloud.url/remote.php/dav/files/username';
folder = 'Publiczny';
login = 'login';
pass = 'password';
var
hc: TFPHttpClient;
begin
if not OpenDialog1.Execute then
exit;
hc := TFPHttpClient.Create(nil);
hc.AllowRedirect := True;
hc.RequestHeaders.Insert(0, 'Authorization: Basic ' + EncodeStringBase64(login + ':' + pass));
hc.RequestBody := TFileStream.Create(OpenDialog1.FileName, fmOpenRead); //load file as requestbody
hc.Put(url + '/' + folder + '/' + ExtractFileName(OpenDialog1.FileName));
if hc.ResponseStatusCode div 100 = 2 then
ShowMessage(Format('File [%s] uploaded to WebDAV', [ExtractFileName(OpenDialog1.FileName)]))
else
ShowMessage(Format('Upload error: [%d] %s', [hc.ResponseStatusCode, hc.ResponseStatusText]));
hc.RequestBody.Free;
hc.Free;
end;
Grüße / Pozdrawiam
paweld
paweld