Как загрузить файл изображения с ПК (localhost) в каталог, расположенный на сервере (например, godaddy.com) в PHP? - PullRequest
0 голосов
/ 13 апреля 2019

Я хочу загрузить файл изображения с моего клиентского ПК (то есть 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

Я ожидаю, что файл успешно загружен. Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 13 апреля 2019
  1. Вы не можете переместить файл в onenetwork.ddns.net/api/profile_images/hala-madrid-wallpaper-hd-wallpapers.jpg.Это URL, вам нужно указать правильный каталог PATH на сервере.Обычно это будет что-то вроде

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

Вы не можете просто запустить скрипт при локальной установке xampp и ожидать, что он сможет загружаться на сервер в Интернете.Вам необходимо загрузить скрипт upload_file.php на сервер, стоящий за onenetwork.dns.net, и запустить его с http://onenetwork.dns.net/upload_file.php

При этом возникает много проблем безопасности - вынеобходимо запретить пользователям загружать файлы неправильного типа (проверьте тип файла MIME), и вы должны убедиться, что они не могут загружать файлы в каталоги, которые вам не нужны.Чтобы использовать это на интернет-сервере, вам придется потратить некоторое время на то, чтобы сначала защитить его, если вы не хотите, чтобы его взломали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...