【发布时间】:2014-09-07 15:53:16
【问题描述】:
我正在使用库 phpseclib0.3.7 通过 SFTP 连接到我的网络服务器。存在的用户具有以下结构:
/dirhome/FirstUser/FirstUser/
/dirhome/SecondUser/SecondUser/
/dirhome/....../.....
地点:
dirhome:
own -> root:root
permission -> 700
FirsUser: (is the name of a user (example))
own -> root:root
permission -> 755
FirsUser: (is the name of a user (example))
own -> FirstUser:mygroup
permission -> 700
第二个用户的结构相同,依此类推。使用此功能,用户只能在其目录中查看/编辑/创建内容。
我可以使用库轻松连接 PHP 并查看文件夹/文件,但不知道如何从个人文件夹中的远程服务器上的用户本地 PC 上传文件。
库提供方法:
->put($remotepath, $localpath, NET_SFTP_LOCAL_FILE);
Il questiona è: 如何打开一个对话框让用户选择用户PC上的文件并上传到她的个人目录?
如果我输入:$localpath = "C:\\Users\\****\\Desktop\\test.txt"
我得到:
C:\\Users\\****\\Desktop\\test.txt is not a valid file
但是如果我将一个驻留在服务器本地的文件工作正常,但这没有意义,因为用户不能放置它的文件。我尝试了几天但没有成功。 下载也不起作用,本质上是同样的问题。
【问题讨论】:
-
PHP 正在服务器上运行。因此,它无法访问存储在每个用户计算机上的文件。您需要分两步执行此操作。首先,使用 HTTP Post 将文件上传到运行 PHP 脚本的服务器。然后使用 SFTP 将它们复制到文件应位于的服务器上。
-
@JohannesH。你为什么不把这个作为答案?
-
@JohannesH。好的!然后尝试应用“两个步骤”。我想下载是一样的!
-
@MartinPrikryl 因为老实说,我认为它在完整性方面不符合 SO 的标准,而且我没有时间向它添加其他信息。不过我可能会稍后再做。