Php 我怎样才能返回“目录”中的目录;ftp“u put”;文件路径?

Php 我怎样才能返回“目录”中的目录;ftp“u put”;文件路径?,php,upload,ftp,directory,Php,Upload,Ftp,Directory,我有一个页面,我的网站的用户可以更改他们为其帐户输入的信息(例如,真实姓名、电子邮件和化身)。我想做的是让他们改变他们的化身。一切都很顺利,除了最后一部分:上传文件。首先我找到了这个文件,然后调整了它的大小,现在我正试图通过PHP中的“ftp\u put”方法将它上传到我的服务器 我使用的脚本位于文件夹“/scripts/newavatar.php”中(从我站点的根目录)。我试图上传到的文件夹是“/avatars/”。我的问题是FTP无法识别我输入了“public\u html/avatars”

我有一个页面,我的网站的用户可以更改他们为其帐户输入的信息(例如,真实姓名、电子邮件和化身)。我想做的是让他们改变他们的化身。一切都很顺利,除了最后一部分:上传文件。首先我找到了这个文件,然后调整了它的大小,现在我正试图通过PHP中的
“ftp\u put”
方法将它上传到我的服务器


我使用的脚本位于文件夹
“/scripts/newavatar.php”
中(从我站点的根目录)。我试图上传到的文件夹是
“/avatars/”
。我的问题是FTP无法识别我输入了
“public\u html/avatars”
。/avatars/“
,或者它不应该或其他内容。我不知道如何更好地解释它。有人能帮我吗?

你应该使用“化身”文件夹的完整FTP路径。 如果它位于FTP根目录中,请尝试:

ftp_put($conn_id, "/avatars/" . $file_name, $local_file_name, FTP_BINARY);

图像文件已经在您的服务器上,因此您不需要使用FTP方法

这是你怎么做的

  • 通过表单上传文件
  • 通过
    $\u文件['field\u name']['tmp\u name']
    路径将文件加载到
    imagecreatefrompng()
    或类似文件中
  • 进行更改/调整大小
  • 使用
    imagepng($imageResource,'/path/to/avatars/image file name.png')将文件保存到其最终目标。
  • 使现代化 我猜您在理解服务器端路径方面有点困难。保存最终图像时,您可能最容易使用相对于
    脚本/newavatar.php
    文件的路径。为此,请使用特殊的
    \uuuuu文件\uuuuu
    常量,例如

    // save final image
    imagepng($imageResource, dirname(dirname(__FILE__)) . '/avatars/' . $imageFilename);
    

    您应该注意远程\u文件本地\u文件之间的区别。 local\u file可以是任何相对路径和目录,但remote\u file是远程服务器中的文件名,最好不要使用相对路径,而只使用文件名。 例如:

    remote_file = "1532574888.exe";
    local_file = "../../files/cleaned/1532574888.exe";
    ftp_put($ftp_conn, $remote_file, $local_file, FTP_ASCII);
    

    它适合我。

    等等,通过PHP上传后,文件不是已经在您的服务器上了吗?您应该只需要使用好,我实际上是从临时文件创建另一个文件。我所做的是在PHP中使用
    imagecreatefrompng
    方法。然后我做了一些调整大小的事情,最终上传了这张全新的图片。很多时候都很难理解。谢谢@Vladislav,但仍然没有成功。我收到了错误
    警告:imagepng()[function.imagepng]:无法打开“/avatars/072720113909.png”进行写入:第60行的/home/artfulme/public\u html/scripts/newavatar.php中没有这样的文件或目录
    警告:ftp\u put()[function.ftp put]:无法打开该文件:第67行的/home/artfulme/public\u html/scripts/newavatar.php中没有此类文件或目录
    。我不确定这一点上发生了什么:我想你应该在imagepng中使用相对路径:“../avatars/072720113909.png”。我的网站不是用Apache或其他东西在本地托管的,它是通过在线网络主机托管的,所以我不确定如何做到这一点。你是说通过FTP上传,然后编辑吗?@Johnny如何提交新的头像图像以调整大小?您的站点上是否有包含
    元素的表单?