1 | <?php |
||||
2 | namespace SilverStripe\FullTextSearch\Utils; |
||||
3 | |||||
4 | class WebDAV |
||||
5 | { |
||||
6 | public static function curl_init($url, $method) |
||||
7 | { |
||||
8 | $ch = curl_init($url); |
||||
9 | |||||
10 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
||||
11 | curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); |
||||
12 | curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); |
||||
13 | |||||
14 | return $ch; |
||||
15 | } |
||||
16 | |||||
17 | public static function exists($url) |
||||
18 | { |
||||
19 | // WebDAV expects that checking a directory exists has a trailing slash |
||||
20 | if (substr($url, -1) != '/') { |
||||
21 | $url .= '/'; |
||||
22 | } |
||||
23 | |||||
24 | $ch = self::curl_init($url, 'PROPFIND'); |
||||
25 | |||||
26 | $res = curl_exec($ch); |
||||
0 ignored issues
–
show
Unused Code
introduced
by
![]() |
|||||
27 | $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
||||
28 | |||||
29 | if ($code == 404) { |
||||
30 | return false; |
||||
31 | } |
||||
32 | if ($code == 200 || $code == 207) { |
||||
33 | return true; |
||||
34 | } |
||||
35 | |||||
36 | user_error("Got error from webdav server - " . $code, E_USER_ERROR); |
||||
37 | } |
||||
38 | |||||
39 | public static function mkdir($url) |
||||
40 | { |
||||
41 | $ch = self::curl_init(rtrim($url, '/') . '/', 'MKCOL'); |
||||
42 | |||||
43 | $res = curl_exec($ch); |
||||
0 ignored issues
–
show
|
|||||
44 | $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
||||
45 | |||||
46 | return $code == 201; |
||||
47 | } |
||||
48 | |||||
49 | public static function put($handle, $url) |
||||
50 | { |
||||
51 | $ch = curl_init($url); |
||||
52 | curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); |
||||
53 | |||||
54 | curl_setopt($ch, CURLOPT_PUT, true); |
||||
55 | curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); |
||||
0 ignored issues
–
show
The constant
CURLOPT_BINARYTRANSFER has been deprecated: 5.1.3
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
56 | |||||
57 | curl_setopt($ch, CURLOPT_INFILE, $handle); |
||||
58 | |||||
59 | $res = curl_exec($ch); |
||||
0 ignored issues
–
show
|
|||||
60 | fclose($handle); |
||||
61 | |||||
62 | return curl_getinfo($ch, CURLINFO_HTTP_CODE); |
||||
63 | } |
||||
64 | |||||
65 | public static function upload_from_string($string, $url) |
||||
66 | { |
||||
67 | $fh = tmpfile(); |
||||
68 | fwrite($fh, $string); |
||||
69 | fseek($fh, 0); |
||||
70 | return self::put($fh, $url); |
||||
71 | } |
||||
72 | |||||
73 | public static function upload_from_file($string, $url) |
||||
74 | { |
||||
75 | return self::put(fopen($string, 'rb'), $url); |
||||
76 | } |
||||
77 | } |
||||
78 |