通过SSH执行PHP脚本

时间:2012-02-27 14:55:59

标签: php file bash ssh

我想通过SSH将数据发送到我的服务器。数据是需要保存到服务器上的目录中的图像文件。

如果我通过SSH运行脚本,如何获取PHP脚本来读取图像文件?

例如,如果我使用bash,我可以做

./uploadimage.bash -image.jpg

就是这样。但我对PHP的了解有限。通常,PHP在处理文件时使用$ _FILE数组,据我所知。如果我通过SSH发送文件,是否需要使用它?

3 个答案:

答案 0 :(得分:2)

通过php命令行可执行文件运行脚本:

php myscript.php image.jpg image2.jpg

您可以通过$argv数组获取文件名,并以任何方式处理它们。

答案 1 :(得分:2)

这取决于你需要对图像做些什么。

  • 您只需要向用户回复它们吗?

    echo file_get_contents('image.jpg');
    
  • 您是否要检索传递给脚本的命令行变量?使用$argv

    myScript.php image.jpg # image.jpg becomes $argv[1]
    
  • 您是否需要对图像进行处理?使用GD functions

    $image = imagecreatefromjpeg('image.jpg');
    // Do processing
    imagejpeg($image); // Pass a filename if you want to save it instead of output it.
    

答案 2 :(得分:0)

如果您只想将一堆文件上传到远程服务器,最好的办法是使用scp命令,而不是PHP

scp /your/file.png username@host:/remote/path.png

如果您通过SSH会话执行PHP脚本,则无法通过SSH发送文件。您必须先将其复制到远程服务器,然后执行使用file_get_contents之类的PHP。

如果您确定 PHP必须是文件的收件人(可能您想要做一些逻辑来确定文件名,路径),您必须将其作为Web服务器托管,并且您可以使用curl上传文件,如下所示:

curl -k -F myfile=@image.png foo.php.