Загрузка файлов (upload). Обработка спецсимволов в названии файлов

Обработка спецсимволов в названии файлов 

По умолчанию идет обработка спецсимволов в названии файла - все спецсимволы заменяются через SQL функцию dbo.str_processurl (убедитесь, что она есть в БД).
Эту обработку можно отключить указав настройку resource.disableProcessName = 1 (в разделе /settings)
CREATE OR ALTER function [dbo].[str_processURL] (@string nvarchar(max))
returns nvarchar(max) as
begin
declare @res nvarchar(max) = lower(dbo.str_cyrillic2Latin(@string))
set @res = replace(@res, '_','-')
set @res = replace(@res, ' ','-')
set @res = replace(@res, '?','-')
set @res = replace(@res, '%','-')
set @res = replace(@res, '&','-')
set @res = replace(@res, '	','-')
set @res = replace(@res, '=','-')
set @res = replace(@res, ',','-')
set @res = replace(@res, '.','-')
set @res = replace(@res, '@','-')
set @res = replace(@res, '#','-')
set @res = replace(@res, '
,'-')
set @res = replace(@res, '*','-')
set @res = replace(@res, '(','-')
set @res = replace(@res, ')','-')
set @res = replace(@res, '/','-') -- возможно не везде надо будет.
set @res = replace(@res, '+','-')
set @res = replace(@res, ':','-')
set @res = replace(@res, '!','-')
set @res = replace(@res, '~','-')

declare @ind int = 1

while @ind <= 10 begin
	set @ind = @ind + 1
	if(right(@res,1)='-') begin
		set @res = left(@res,len(@res)-1)
	end
	if(left(@res,1)='-') begin
		set @res = right(@res,len(@res)-1)
	end

end

return @res
end

Важная данная обработка не будет действовать на те менеджеры ресурсов, для которых стоит настройка галка Загружать без изменений.

Внимание. Обновление Июнь 2025. Внедрена дополнителная обработка ПО УМОЛЧАНИЮ по спецсимволам в названии сайтов.

По умолчанию список символов такой  !,*'();/?:@&=+$" 

Эти символы будут удаляться из имени файлов. 

Его можно изменить (расширить или сузить) через настройку в /settings с кодом uploadFileRemoveSigns.

Страница-источник на сайте falconspace.ru