TimurWiFi
@TimurWiFi

FTP не загружает файл на сервер, что делать?

Я совсем недавно узнал про FTP в PHP и в целом.
Нужно, что бы файл загружался на другой сервер, но почему-то это не работает,
точнее работает, но файл - который в конечном итоге доходит до сервера - не открывается.
Допустим на удалённый сервер нужно загрузить изображение, но когда оно доходит до сервера - он не открываемый.

Вот скрипты:
ftp_connect.php
<?
// connection...
$ftp_link = "ftp.timpixel.net";
$ftp_connect = ftp_connect($ftp_link, 21, 90);
$ftp_login = ftp_login($ftp_connect, 'admin', 'qwerty');

$ftp_chdir = ftp_chdir($ftp_connect, "cloud-data");
$ftp_pasv = ftp_pasv($ftp_connect, true);
?>


Сам скрипт на отправление:
<?php

$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
error_reporting(E_ALL);

    session_start();
    require_once 'connect.php';
    require_once 'ftp_connect.php';

    $username = $_POST['username'];
    $password = hash('haval256,5', $_POST['password']);
    $password_confirm = hash('haval256,5', $_POST['password_conf']);
    $email = $_POST['email'];
    $profile_image = $_FILES['avatar']['tmp_name'];

            $rand1 = "avatars/".rand(10000, 99999).$_FILES['avatar']['name'];
            //$table = "INSERT INTO `users`(`id`, `username`, `email`, `password`, `plan`, `banned`, `avatar`, `subscribers`, `status`, `used_plan`) VALUES (NULL, '$username', '$email', '$password', 3, 'no', '$rand1', 0, 'surfer', 3)";
            
                          // Проблемы тут:

            move_uploaded_file($profile_image, "../".$rand1); //upload local file...
            ftp_put($ftp_connect, $rand1, "../".$rand1, FTP_ASCII); //move from local to remote...
            
            $create_table = mysqli_query($connect, $table);
          mkdir("../themes/".$username, 0700);
          mkdir("../themes/".$username."/files", 0700);
        
          $_SESSION['message'] = 'Регистрация прошла успешно';

          //header('Location: ../login.php');
          
?>
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Есть такая легаси штука как transfer mode. По умолчанию он может быть ascii и для бинарных файлов может быть какая-то фигня после передачи. Лучше сразу после подключения к серверу включить binary mode. На всякий случай.

Вообще подключись консолью и посмотри размер файла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы