以下代码用于将文件上传到SFTP:
\SSH::into('server')->put($localFile, $remotePath);
它在幕后使用phpseclib/phpseclib/Net/SFTP.php。
尝试上传包含特殊字符的文件时上传不起作用,例如"file_ü_e.jpg"
通过GUI工具将这样的文件上传到给定的服务器,所以问题是 - 是否可以通过脚本上传它应该做什么?
答案 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