phpseclib SFTP不能放置带有特殊字符的文件

时间:2015-10-07 09:01:37

标签: php laravel-4 phpseclib php-5.6 net-sftp

以下代码用于将文件上传到SFTP:

\SSH::into('server')->put($localFile, $remotePath);

它在幕后使用phpseclib/phpseclib/Net/SFTP.php。 尝试上传包含特殊字符的文件时上传不起作用,例如"file_ü_e.jpg"

通过GUI工具将这样的文件上传到给定的服务器,所以问题是 - 是否可以通过脚本上传它应该做什么?

1 个答案:

答案 0 :(得分:-1)

idk如果Laravel创建了一个围绕phpseclib put的包装器,但是使用phpseclib,你的function arrange_timestring($timestring) { $problematic_keywords = array("noon","midnight"); $keyword_counter = 0; foreach($problematic_keywords as $keyword) { if (strpos($timestring,$keyword) !== false) { $keyword_counter += 1; if (strpos($timestring,$keyword) > 0) { $timestring = str_replace($keyword, "", $timestring); $timestring = $keyword." ".$timestring; } } } if ($keyword_counter > 1) { return Null; //strings shouldn't have both noon and midnight } else { return $timestring; } } 调用将是错误的。使用phpseclib如果要将本地文件系统上的文件上传到远程SFTP服务器,则需要执行以下操作:

$noon_timestamp = strtotime(arrange_timestring("August 3 noon"));
$twelve_timestamp = strtotime(arrange_timestring("August 3 12:00 PM"));
print date("Y-m-d H:i:s", $noon_timestamp);
2015-08-03 12:00:00
print date("Y-m-d H:i:s", $twelve_timestamp);
2015-08-03 12:00:00