PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / symfony / http-foundation / File / File.php
give / vendor / vendor-prefixed / symfony / http-foundation / File Last commit date
Exception 2 years ago MimeType 2 years ago File.php 2 years ago Stream.php 2 years ago UploadedFile.php 2 years ago
File.php
142 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 *
11 * Modified by impress-org on 23-January-2024 using Strauss.
12 * @see https://github.com/BrianHenryIE/strauss
13 */
14
15 namespace Give\Vendors\Symfony\Component\HttpFoundation\File;
16
17 use Give\Vendors\Symfony\Component\HttpFoundation\File\Exception\FileException;
18 use Give\Vendors\Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
19 use Give\Vendors\Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser;
20 use Give\Vendors\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
21
22 /**
23 * A file in the file system.
24 *
25 * @author Bernhard Schussek <bschussek@gmail.com>
26 */
27 class File extends \SplFileInfo
28 {
29 /**
30 * Constructs a new file from the given path.
31 *
32 * @param string $path The path to the file
33 * @param bool $checkPath Whether to check the path or not
34 *
35 * @throws FileNotFoundException If the given path is not a file
36 */
37 public function __construct($path, $checkPath = true)
38 {
39 if ($checkPath && !is_file($path)) {
40 throw new FileNotFoundException($path);
41 }
42
43 parent::__construct($path);
44 }
45
46 /**
47 * Returns the extension based on the mime type.
48 *
49 * If the mime type is unknown, returns null.
50 *
51 * This method uses the mime type as guessed by getMimeType()
52 * to guess the file extension.
53 *
54 * @return string|null The guessed extension or null if it cannot be guessed
55 *
56 * @see ExtensionGuesser
57 * @see getMimeType()
58 */
59 public function guessExtension()
60 {
61 $type = $this->getMimeType();
62 $guesser = ExtensionGuesser::getInstance();
63
64 return $guesser->guess($type);
65 }
66
67 /**
68 * Returns the mime type of the file.
69 *
70 * The mime type is guessed using a MimeTypeGuesser instance, which uses finfo(),
71 * mime_content_type() and the system binary "file" (in this order), depending on
72 * which of those are available.
73 *
74 * @return string|null The guessed mime type (e.g. "application/pdf")
75 *
76 * @see MimeTypeGuesser
77 */
78 public function getMimeType()
79 {
80 $guesser = MimeTypeGuesser::getInstance();
81
82 return $guesser->guess($this->getPathname());
83 }
84
85 /**
86 * Moves the file to a new location.
87 *
88 * @param string $directory The destination folder
89 * @param string $name The new file name
90 *
91 * @return self A File object representing the new file
92 *
93 * @throws FileException if the target file could not be created
94 */
95 public function move($directory, $name = null)
96 {
97 $target = $this->getTargetFile($directory, $name);
98
99 set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
100 $renamed = rename($this->getPathname(), $target);
101 restore_error_handler();
102 if (!$renamed) {
103 throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error)));
104 }
105
106 @chmod($target, 0666 & ~umask());
107
108 return $target;
109 }
110
111 protected function getTargetFile($directory, $name = null)
112 {
113 if (!is_dir($directory)) {
114 if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) {
115 throw new FileException(sprintf('Unable to create the "%s" directory.', $directory));
116 }
117 } elseif (!is_writable($directory)) {
118 throw new FileException(sprintf('Unable to write in the "%s" directory.', $directory));
119 }
120
121 $target = rtrim($directory, '/\\').\DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
122
123 return new self($target, false);
124 }
125
126 /**
127 * Returns locale independent base name of the given path.
128 *
129 * @param string $name The new file name
130 *
131 * @return string containing
132 */
133 protected function getName($name)
134 {
135 $originalName = str_replace('\\', '/', $name);
136 $pos = strrpos($originalName, '/');
137 $originalName = false === $pos ? $originalName : substr($originalName, $pos + 1);
138
139 return $originalName;
140 }
141 }
142