Расшифровка файлов на FTP сервере

Европа - быстрые серверы на дисках NVMe от $5 / Русский датацентр от 199руб

Тема в разделе "Вопросы по программированию на РНР", создана пользователем Sqder, 11 янв 2019.

  1. Sqder

    Sqder Новичок

    Сообщения:
    3
    Ваш город:
    Киев, Украина
    Address:
    Kyiv, Ukraine
    Country:
    Location on Map:
    Доброго времени суток, проблема такая: у меня есть php код для загрузки файлов на FTP сервер, но при попытке загрузить файл возникает некая странность. Заключается она в том, что файл загружается на FTP сервер, но его расширение теряется и файл восстановить больше не получается. То есть, допустим я загружаю "picture.png", а на сервере появляется "5c384be00d30b_5c384be00d346" без расширения, и файл больше не подлежит восстановлению.
    Вот код:
    PHP:
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU">
    <head profile="http://gmpg.org/xfn/11">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Загрузка на FTP</title>
    </head>
    <? if(!isset($_POST["submit"])){?>
    <div id=center>
    <form action="8.php" method="POST" enctype="multipart/form-data">
    <table align="center">
    <tr>
    <td align="right">
    <b>Выберите файл:</b>
    </td>
    <td>
    <input name="userfile" type="file" size="50">
    </td>
    </tr>
    </table>
    <table align="center">
    <tr>
    <td align="center">
    <input type="submit" name="submit" value="Загрузить" />
    </td>
    <tr/>
    </table>
    </form>
    <?}
    else
    {
    Set_time_limit (120);
    $filename = $_FILES['file']['name'];
    $maxsize = "20000000";
    $size = filesize ($_FILES['file']['tmp_name']);
    $paths='/download';
    $filep=$_FILES['userfile']['tmp_name'];
    $ftp_server='хост';
    $ftp_user_name='пользователь';
    $ftp_user_pass='пасс';
    $name=uniqid().'_'.uniqid().'.'.$type;
    $extentions = array("gif","txt","tpl","jpg","jpeg","png","zip","rar","7z","tif","psd","swf","flv","avi","mpeg","mp4","mp3","wav","ogg","ogm","doc","xls","ppt","pdf","exe");
    $type = strtolower(substr($filename, 1 + strrpos($filename, ".")));
    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    if ((!$conn_id) || (!$login_result)) {
    echo "FTP соединение произошла ошибка!";
    echo "Попытка подключения к $ftp_server для пользователя $ftp_user_name ....";
    exit;
    } else {
    echo "<div id=center>";
    echo "Загрузка выполнена успешно!<br>";
    }
    $upload = ftp_put($conn_id, $paths.'/'.iconv("UTF-8","windows-1251",$name), $filep, FTP_BINARY);
    if (!$upload) {
    echo "FTP загрузка произошла ошибка!";
    } else {
    echo "</div>";
    }
    ftp_close($conn_id);
    }
    ?>
    </div>
    </html>
     
  2. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.658
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    А зачем конвертировать имя файла в CP1251 ?
     
  3. Sqder

    Sqder Новичок

    Сообщения:
    3
    Ваш город:
    Киев, Украина
    Address:
    Kyiv, Ukraine
    Country:
    Location on Map:
    Из соображений безопасности, мне бы понять, почему файлы не открываются посл обратной выкачки с FTP на ПК?
     
  4. ksnk

    ksnk прохожий

    Сообщения:
    1.094
    Address:
    Sankt-Peterburg, Russia
    Country:
    Location on Map:
    в качестве телепатического упражнения
    - при конвертировани в cp1251 iconv плачет и возвращает пустую строку
    - при перекачивании временного файла в нужеый каталог - имя временного файла становится именем нового.

    Что называется
    ? Удалось скачать укачанный файл, Он такой или не такой как то, как был раньше ?
     
  5. Sqder

    Sqder Новичок

    Сообщения:
    3
    Ваш город:
    Киев, Украина
    Address:
    Kyiv, Ukraine
    Country:
    Location on Map:
    Как это можно исправить в коде?
     
  6. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.658
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Щито?
     
  7. ksnk

    ksnk прохожий

    Сообщения:
    1.094
    Address:
    Sankt-Peterburg, Russia
    Country:
    Location on Map:
    ?
    Ошибок в коде может быть много, нужно понять что происходит ... Ну и убрать перекодировку и посмотреть не станет ли все
    радикально по другому...