"No such file or directory" 使用 WinSCP 将带有百分号的本地文件同步到远程目录时
"No such file or directory" when synchronizing a local file with percent sign to remote directory with WinSCP
我有名称为 %253csvg%2fonload=alert(1)%253e.jpg-131x94
的文件
我正在尝试使用 WinSCP .NET 程序集将文件同步到远程服务器 Session.SynchronizeDirectories
我遇到错误
"No such file or directory"
但是我看到错误中的文件名是%3csvg/onload=alert(1)%3e.jpg-131x94
一些单词丢失了。
我使用的是 WinSCP 5.9.6 产品版本。
$FTPSourceFolder = "D:\...[=11=]"
$FTPDestionationFolder = "/storage/../00"
$synchronizationResult = $session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Remote, $FTPSourceFolder,$FTPDestionationFolder, $True, $False)
$synchronizationResult.check()
WinSCP 默认会URL-解码本地文件名。
如果您不想这样做,可以关闭此功能:
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.AddRawSettings("ReplaceInvalidChars", "0")
$synchronizationResult =
$session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Remote,
$FTPSourceFolder,$FTPDestionationFolder, $True, $False,
$transferOptions)
参考文献:
我有名称为 %253csvg%2fonload=alert(1)%253e.jpg-131x94
我正在尝试使用 WinSCP .NET 程序集将文件同步到远程服务器 Session.SynchronizeDirectories
我遇到错误
"No such file or directory"
但是我看到错误中的文件名是%3csvg/onload=alert(1)%3e.jpg-131x94
一些单词丢失了。
我使用的是 WinSCP 5.9.6 产品版本。
$FTPSourceFolder = "D:\...[=11=]"
$FTPDestionationFolder = "/storage/../00"
$synchronizationResult = $session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Remote, $FTPSourceFolder,$FTPDestionationFolder, $True, $False)
$synchronizationResult.check()
WinSCP 默认会URL-解码本地文件名。
如果您不想这样做,可以关闭此功能:
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.AddRawSettings("ReplaceInvalidChars", "0")
$synchronizationResult =
$session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Remote,
$FTPSourceFolder,$FTPDestionationFolder, $True, $False,
$transferOptions)
参考文献: