- [Core] prevent
strlen
from receivingNULL
.
- [FTP] Detect PHP an FTP connection by either is_resource OR it being an instance of
FTP\Connection
(PHP 8.1)
- [FTP] Windows detection on installations that produce lines with whitespaces (#1384)
- [FTP] Listing contents required escaping for special characters (caused missing contents and failure of directory deletes)
- [FTP] Do not fail when setting a connection to UTF-8 when it is already on UTF-8.
- [Core] Whitespace normalization now no longer strips funky whitespace but throws an exception.
- Prevent closed resources from being passed.
- Allow FTP to use paths with special characters: "[]{}*"
- Always resolve mime-types
- Enable directory last_modified key for FTP unix listings
- Make sure MimeType::detectByFilename detection falls back to
text/plain
, like before.
- Minimum PHP version is now 7.2.5
- MimeType now uses league/mime-type-detection
- Added (internal) League\Flysystem\Util\MimeType::useDetector to change mime-type resolving.
- Local::update now also updates permissions.
- Corrected the docblock return type of
getTimestamp
and enforce it in theFilesystem
.
- Added mime-types for .ico files (#1163)
- Added mime-types for markdown (#1153)
- Warnings from FTP are now silenced, preventing exceptions.
- Added missing webp mime-type entry.
- Improved performance of the connectivity check for FTP connections.
- Introduces base exception marker and custom runtime exceptions for error cases.
- (#1119) Made
Util::getStreamSize
account forfstat
failure.
- Fixed an array access issue for PHP 7.4 (#1106)
- Fixed a PHP 7.4 issue where an array key was accessed for a non-array variable (#1105)
- Ensure emulating directories respects a directory named "0".
- Release lock on directories before removing them because issue with vagrant mounting.
- Added more missing mime-types.
- Improved packagist artifact
- Added missing mime-type.
- Fixed metadata fetching of the existing directory in Ftpd.
- Fixed directory creation race condition
- Prevent mime-type lookup when known in config
- Clear stat cache before getting file metadata.
- Correcting mimetype for CSV files according to latest RFC (https://tools.ietf.org/html/rfc7111).
- Prevent warnings for
file_get_contents
calls withouthas
calls.
- [Ftp::listContents] Added support to return 'timestamp' attribute. Note that accuracy is limited due to limitations in the 'LIST' command.
- Added option
'case_sensitive'
(defaulttrue
) for cases like Dropbox which are not. - Concurrency issue fixed with cache clear.
- It's my birthday today.
- Error message for directory creation in the Local adapter has a better description with more context.
- The MountManager now implements the FilesystemInterface.
- Specify mimetype for .epub files
- Return failure when copying a stream does not work instead of relying only on fclose.
- Fixed a regression in path-derived metadata fetching.
- Added missing file presence checks on
Filesystem::setVisibility
andFilesystem::getSize
. - The
Handler
types are now deprecated and will be removed in 2.0.0 - The
FilesystemInterface::get
method is now deprecated and will be removed in 2.0.0
- Remove /docs from composer artifact.
- Fixed FTP manual recursion.
- Various code style fixes.
- Removed support for HHVM.
- Response array check mistake was corrected.
- Made it possible to indicate an adapter can overwrite files using the write functions rather than the update ones.
- Some FTP servers return the
total
of 0 when a file doesn't exist instead of saying it doesn't exist.
- You can now optionally put the FTP adapter in
utf8
-mode by setting theutf8
setting totrue
.
- Pure-FTPd now escapes the first call to rawlist too.
- Space escaping for Pure-FTPd in the FTP adapter.
- Ensure an FTP connection is still a resource before closing it.
- Made return values of some internal adapters consistent.
- Made 0 a valid FTP username.
- Docblock class reference fixes.
- Created a more specific exception for when a mount manage is not found (with BC).
- Creating a directory in FTP checked whether a directory already existed, the check was not strict enough.
- Account for a Finfo buffer error which causes an array to string conversion.
- Simplified path handling for Windows.
- Path traversing possibility on Windows.
- Fixed listings on windows.
- Relative path resolving was too greedy.
- Lowered minimum PHP version to 5.5.9
- All FTP-like adapters now have a safe storage for usernames and passwords.
- [#705] Config::has now also checks the fallback config.
- [#684] The local adapter now infers the mimetype based on the extension for empty files.
- [Filesystem] Added an option to disable asserts.
- [Local\Ftp] Streams opened with
fopen
now open in binary mode, which is better on Windows environments.
- [Local] Creating the root directory could lead to raceconditions, which are now handled a lot nicer. Initially only for the constructor but now also fixed the same thing for all the write operations.
- Default file/directory permissions are non executable.
- Regression fix, the "0" root directory is now possible again.
- Explicitly return false when a
has
call receives an empty filename. - MounManager
copy
andmove
operators now comply to theFilesystem
's signature.
- MimeType detection now falls back on extension guessing when the contents is a resource.
- [Util::normalizeRelativePath]
'.'
didn't normalize to''
, this is now fixed.
- Reverted "Simplified Util::pathinfo, dirname key always exists." which had unexpected side-effects.
- [Util::guessMimeType] Worked around incorrect detection of assembly mime-type. (#608)
- [Ftp::isConnected] PHP warnings are prevented by improving the connection check.
- [Ftp::listContents] Recursive listings not use the
R
flag instead of the function param. - [Ftp::listContents] The
*
character is now properly escaped. - [Ftp::getMetadata] The
*
character is now properly escaped. - [Ftp] An
ignorePassiveAddress
option has been added to allow NAS FTP servers to work. - [Util] Mimetype
application/x-empty
is not treated astext/plain
and will fall back to extension based mimetype checks. - [Local] Unreadable files no longer cause a Fatal error, they're not a catchable exception.
- [Util::emulateDirectories] Now emulates correctly when a mix of files and directories are returned.
- [Adapter\Local] Now has configurable file and directory permissions.
- [Adapter\Ftp] Now tries to reconnect when a connection is dropped.
- [Util::pathinfo] Now checks for existence of the dirname key, it's missing in some PHP versions.
- [Adapter\Local::deleteDir] Now removes up links correctly.
- [Filesystem::listContents] The implementation is clearer now and works more reliably for windows users.
- [Filesystem::listContents] This function now uses DIRECTORY_SEPARATOR when the local adapter is used.
- [Local::deleteDir] This function now uses the correct (reversed) iterator instead of relying in listContents.
- [Local] The Local adapter now has the ability to skip links using Local::SKIP_LINKS as the third constructor argument.
- [Filesystem] Fixed the handling of directories named "0".
- [Adapter\Local] Directories are no longer created with the 0777 permissions which is unsafe for shared hosting environments.
- [Filesystem::listContent] Emulated directories didn't respect the natural sorting, this is now corrected in the listContents method.
- [Filesystem::listContents] The result excess from listing calls wasn't filtered strict enough, this is now improved.
- [Handler] Added getter for the Filesystem.
- [Handler] Now allows plugins calls.
- [Adapter\Ftp] Now handles windows FTP servers.
- [Adapter\Local] Symlinks are now explicitly not supported, this was previously broken.
- [Adapter\Ftp] Detecting whether a path is a directory or not is more reliable.
- [Adapter\SynologyFtp] Has been renamed to Ftpd (The original class still exists for BC).
- [Filesystem] Not uses
getAdapter
internally to aid extension. - [Adapter\Local] Now uses
umask
when creating directories to make it more reliable. - [Misc] Coding style fixes.
- #429: Handle FTP filenames with leading spaces.
- #418: Handle FTP filenames with dot prefixes.
- #427: Path normalising edge case resolved.
- [Adapter\Local] Again allows read only dirs to be the adapter's root.
- Re-added missing metadata from pathinfo to
getMetadata
calls.
- Adapters moved into their own repo's: AwsS3, Dropbox, GridFS, Rackspace
- [Filesystem] Caching is removed and moved into it's own repo as an adapter decorator.
- [FilesystemInterface] This interface is now no longer related to the AdapterInterface and now correctly specifies return type.
- [AdapterInterface] The adapter interface now consistently specifies return type.
- [AbstractAdapter / Polyfills] Polyfill methods from the AbstractAdapter are now moved to their own traits and only included in adapters that need them.
- [Cache] Cache contents is now in control over what's cached instead of the implicit controle the adapters had.
- [AwsS3] Removed raw response from response array
- [Cache] Ensure cache response is JSON formatted and has the correct entries.
- [AwsS3] Contents supplied during AwsS3::write is now cached like all the other adapters. (Very minor chance of this happening)
- [AwsS] Detached stream from guzzle response to prevent it from closing on EntityBody destruction.
- [Util] Paths with directory names or file names with double dots are now allowed.
- [Cache:Noop] Added missing readStream method.
- [AwsS3] CacheControl write option is now correctly mapped.
- [AwsS3] writeStream now properly detects Body type which resulted in cache corruption: c7246e3341135baad16180760ece3967da7a44f3
- [Rackspace] Path prefixing done twice when retrieving meta-data.
- [Core] Finfo is only used to determine mime-type when available.
- [AwsS3] Previously set ACL is now respected in rename and copy.
- Stash cache adapter.
- Path prefixing would done twice for rackspace when using streams for writes or updates.
- Copy Adapter
- Dropbox path normalisation.