webdav_client

Creator: coderz1093

Last updated:

Add to Cart

Description:

webdav client

webdav_client #
A dart WebDAV client library(support null-safety), use dio as http client.
pub.dev link
Main features #

support Basic/Digest authentication
common settings
read dir
make dir
delete
rename
copy
download file
upload file
cancel request


web support #
see stackoverflow for CORSB problems needing attention
#
Usage #
First of all you should create client instance using newClient() function:
var client = newClient(
'http://localhost:6688/',
user: 'flyzero',
password: '123456',
debug: true,
);
copied to clipboard
Common settings #
// Set the public request headers
client.setHeaders({'accept-charset': 'utf-8'});

// Set the connection server timeout time in milliseconds.
client.setConnectTimeout(8000);

// Set send data timeout time in milliseconds.
client.setSendTimeout(8000);

// Set transfer data time in milliseconds.
client.setReceiveTimeout(8000);

// Test whether the service can connect
try {
await client.ping();
} catch (e) {
print('$e');
}
copied to clipboard
Read all files in a folder #
var list = await client.readDir('/');
list.forEach((f) {
print('${f.name} ${f.path}');
});

// can sub folder
var list2 = await client.readDir('/sub/sub/folder');
list2.forEach((f) {
print('${f.name} ${f.path}');
});

copied to clipboard
Create folder #
await client.mkdir('/新建文件夹');

// Recursively create folders
await client.mkdirAll('/new folder/new folder2');
copied to clipboard
Remove a folder or file #

If you remove the folder, some webdav services require a '/' at the end of the path.

// Delete folder
await client.remove('/new folder/new folder2/');

// Delete file
await client.remove('/new folder/新建文本文档.txt');
copied to clipboard
Rename a folder or file #

If you rename the folder, some webdav services require a '/' at the end of the path.

// Rename folder
await client.rename('/新建文件夹/', '/新建文件夹2/', true);

// Rename file
await client.rename('/新建文件夹2/test.dart', '/新建文件夹2/test2.dart', true);
copied to clipboard
Copy a file / folder from A to B #

If copied the folder (A > B), it will copy all the contents of folder A to folder B.


Some webdav services have been tested and found to delete the original contents of the B folder!!!

// Copy all the contents of folderA to folder B
await client.copy('/folder/folderA/', '/folder/folderB/', true);

// Copy file
await client.copy('/folder/aa.png', '/folder/bb.png', true);
copied to clipboard
Download file #
// download bytes
await client.read('/folder/folder/openvpn.exe', onProgress: (c, t) {
print(c / t);
});

// download 2 local file with stream
await client.read2File(
'/folder/vpn.exe', 'C:/Users/xxx/vpn2.exe', onProgress: (c, t) {
print(c / t);
});
copied to clipboard
Upload file #
// upload local file 2 remote file with stream
CancelToken c = CancelToken();
await client.writeFromFile(
'C:/Users/xxx/vpn.exe', '/f/vpn2.exe', onProgress: (c, t) {
print(c / t);
}, cancelToken: c);
copied to clipboard
Cancel request #
CancelToken cancel = CancelToken();

// Supports most methods
client.mkdir('/新建文件夹', cancel)
.catchError((err) {
prints(err.toString());
});

// in other
cancel.cancel('reason')
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.