首页 > 解决方案 > 如何将图像文件从 PC(本地主机)上传到 PHP 中位于服务器(例如 godaddy.com)上的目录?

问题描述

我想将图像文件从我的客户端 PC(即 localhost)上传到位于远程服务器上的目录(即 godaddy.com)。我怎么能用 PHP 做到这一点?

我尝试从本地主机上传到本地主机本身的目录。它在那里工作正常,但不适用于远程服务器。

下面是html代码:

<html>
<body>
    <form action="upload_file.php" method="POST" enctype="multipart/form-data">
           Browse for File to Upload : <br>
        <input name="file" type="file" id="file"><br>
        <input type="submit" id="u_button" name="u_button" value="Upload the file">
    </form>
</body>

以下是我的 PHP 代码:

 <?php
$file_result = "";
    if($_FILES['file']['error'] > 0){
        $file_result .= "No File uploaded or invalid File ";
        $file_result .= "Error Code: ".$_FILES["file"]["error"]."<br>";
    }
    else{
        $file_result .=
        "Upload:" . $_FILES["file"]["name"]."<br>".
        "Type:" . $_FILES["file"]["type"] . "<br>" .
        "Size:" . ($_FILES["file"]["size"]/1024) . " Kb<br>" .
        "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

        move_uploaded_file($_FILES["file"]["tmp_name"],
        "onenetwork.ddns.net/api/profile_images/" . $_FILES["file"]["name"]);

        $file_result .= "File uploaded successfully";
    }
    ?>

以下是我得到的错误:

 Warning: move_uploaded_file(onenetwork.ddns.net/api/profile_images/hala- 
 madrid-wallpaper-hd-wallpapers.jpg): failed to open stream: No such file 
 or directory in C:\xampp\htdocs\upload_file.php on line 16

 Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpBFF0.tmp' 
 to 'onenetwork.ddns.net/api/profile_images/hala-madrid-wallpaper-hd- 
 wallpapers.jpg' in C:\xampp\htdocs\upload_file.php on line 16

我希望文件成功上传。请帮帮我。

标签: phpfile

解决方案


  1. 您无法将文件移动到onenetwork.ddns.net/api/profile_images/hala-madrid-wallpaper-hd-wallpapers.jpg. 那是一个 URL,你需要在服务器上指定一个合适的目录PATH。通常它会像

dirname(__FILE__).'/api/profile_images/'.$_FILES["file"]["tmp_name"]

  1. 您不能只在本地 xampp 安装上运行脚本并期望它能够上传到 Internet 上的服务器。您需要将upload_file.php脚本上传到后面的服务器并从http://onenetwork.dns.net/upload_file.phponenetwork.dns.net运行它

  2. 这样做有很多安全问题 - 您需要阻止人们上传错误类型的文件(检查文件的 MIME 类型),并且您需要确保他们无法上传到您的目录不希望他们。要在 Internet 服务器上使用它,您必须先花一些时间使其安全,除非您想被黑客入侵。


推荐阅读