Resetting MediaLibraryService changes to 1.10.x

This commit is contained in:
Benedek Farkas 2024-04-08 11:41:42 +02:00
parent cd313f9301
commit c72dc2ba41

View File

@ -22,7 +22,6 @@ namespace Orchard.MediaLibrary.Services {
private readonly IEnumerable<IMediaFactorySelector> _mediaFactorySelectors;
private readonly IMediaFolderProvider _mediaFolderProvider;
private static char[] HttpUnallowed = new char[] { '<', '>', '*', '%', '&', ':', '\\', '?', '#' };
private readonly char[] InvalidCharacters;
public MediaLibraryService(
IOrchardServices orchardServices,
@ -37,8 +36,6 @@ namespace Orchard.MediaLibrary.Services {
_mediaFolderProvider = mediaFolderProvider;
T = NullLocalizer.Instance;
InvalidCharacters = Path.GetInvalidFileNameChars().Union(HttpUnallowed).OrderBy(c => c).ToArray();
}
public Localizer T { get; set; }
@ -149,12 +146,12 @@ namespace Orchard.MediaLibrary.Services {
public string GetUniqueFilename(string folderPath, string filename) {
// Removing characters the are forbidden on the file sytem or unallowed in an HTTP request.
foreach (var character in InvalidCharacters) {
filename = filename.Replace(character.ToString(), "");
// remove any char which is unallowed in an HTTP request
foreach (var unallowedChar in HttpUnallowed) {
filename = filename.Replace(unallowedChar.ToString(), "");
}
// Generating a unique file name.
// compute a unique filename
var uniqueFilename = filename;
var index = 1;
while (_storageProvider.FileExists(_storageProvider.Combine(folderPath, uniqueFilename))) {
@ -330,8 +327,6 @@ namespace Orchard.MediaLibrary.Services {
public void CreateFolder(string relativePath, string folderName) {
Argument.ThrowIfNullOrEmpty(folderName, "folderName");
ValidateFileOrFolderName(folderName);
_storageProvider.CreateFolder(relativePath == null ? folderName : _storageProvider.Combine(relativePath, folderName));
}
@ -366,8 +361,6 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(folderPath, "folderPath");
Argument.ThrowIfNullOrEmpty(newFolderName, "newFolderName");
ValidateFileOrFolderName(newFolderName);
try {
var parentIndex = folderPath.LastIndexOfAny(new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar });
var parentPath = parentIndex > 0 ? folderPath.Substring(0, parentIndex) : String.Empty;
@ -409,8 +402,6 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(currentFileName, "currentFileName");
Argument.ThrowIfNullOrEmpty(newFileName, "newFileName");
ValidateFileOrFolderName(newFileName);
_storageProvider.RenameFile(_storageProvider.Combine(folderPath, currentFileName), _storageProvider.Combine(folderPath, newFileName));
}
@ -427,11 +418,8 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(filename, "filename");
Argument.ThrowIfNullOrEmpty(newFilename, "newFilename");
ValidateFileOrFolderName(newFilename);
if (!_storageProvider.FolderExists(newPath))
_storageProvider.TryCreateFolder(newPath);
_storageProvider.RenameFile(_storageProvider.Combine(currentPath, filename), _storageProvider.Combine(newPath, newFilename));
}
@ -446,8 +434,6 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(filename, "filename");
Argument.ThrowIfNullOrEmpty(duplicateFilename, "duplicateFilename");
ValidateFileOrFolderName(duplicateFilename);
_storageProvider.CopyFile(_storageProvider.Combine(currentPath, filename), _storageProvider.Combine(duplicatePath, duplicateFilename));
}
@ -476,8 +462,6 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(fileName, "fileName");
Argument.ThrowIfNull(bytes, "bytes");
ValidateFileOrFolderName(fileName);
return UploadMediaFile(folderPath, fileName, new MemoryStream(bytes));
}
@ -493,8 +477,6 @@ namespace Orchard.MediaLibrary.Services {
Argument.ThrowIfNullOrEmpty(fileName, "fileName");
Argument.ThrowIfNull(inputStream, "inputStream");
ValidateFileOrFolderName(fileName);
string filePath = _storageProvider.Combine(folderPath, fileName);
_storageProvider.SaveStream(filePath, inputStream);
@ -510,17 +492,5 @@ namespace Orchard.MediaLibrary.Services {
public string Combine(string path1, string path2) {
return _storageProvider.Combine(path1, path2);
}
/// <summary>
/// Validates file and folder names by throwing an exception if the name contains an invalid character.
/// </summary>
/// <param name="name">The name of the file or folder.</param>
private void ValidateFileOrFolderName(string name) {
if (name.IndexOfAny(InvalidCharacters) >= 0) {
throw new ArgumentException("The following characters cannot be used for file and folder names: " +
string.Join(", ", InvalidCharacters.Where(c => (byte)c > 31)) + ".");
}
}
}
}