Загрузите текстовый файл и из первой строки возьмите строку для нового имени файла - PullRequest
0 голосов
/ 30 апреля 2018

При загрузке .txt файла на сервер мне нужно прочитать его, взять первую строку, а эту строку из первой строки использовать для нового имени файла (переименовать файл).

Например, у меня есть файл test.txt, а в файле есть

First line - Username: DemoUser

Мне нужно переименовать test.txt в DemoUser.txt и этот DemoUser.txt для хранения в MySQL

1 Ответ

0 голосов
/ 30 апреля 2018

Вот мой сценарий

<?php

if (isset($_POST['submit']))
{
    $filename = $_FILES["file"]["name"];
    $file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
    $file_ext = substr($filename, strripos($filename, '.')); // get file name
    $filesize = $_FILES["file"]["size"];
    $allowed_file_types = array('.doc','.docx','.rtf','.pdf', '.txt');

    $file = fopen($_FILES["file"]["tmp_name"],"r");
    $result = fgets($file);
    $result = explode( ': ', preg_split( '(\\r\\n|\\r|\\n)', $result )[0] )[1];
    fclose($file);

    if (in_array($file_ext,$allowed_file_types) && ($filesize < 200000))
    {   
        // Rename file
        $newfilename = $result . $file_ext;
        if (file_exists("users/" . $newfilename))
        {
            // file already exists error
            echo "You have already uploaded this file.";
        }
        else
        {       
            move_uploaded_file($_FILES["file"]["tmp_name"], "users/" . $newfilename);
            echo "File uploaded successfully.";     
        }
    }
    elseif (empty($file_basename))
    {   
        // file selection error
        echo "Please select a file to upload.";
    } 
    elseif ($filesize > 200000)
    {   
        // file size error
        echo "The file you are trying to upload is too large.";
    }
    else
    {
        // file type error
        echo "Only these file typs are allowed for upload: " . implode(', ',$allowed_file_types);
        unlink($_FILES["file"]["tmp_name"]);
    }
}
?>
...