Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何上传文件并用文件类型命名?_Php_Html_File Upload - Fatal编程技术网

Php 如何上传文件并用文件类型命名?

Php 如何上传文件并用文件类型命名?,php,html,file-upload,Php,Html,File Upload,嘿,伙计们,我创建了一个网站,你可以上传书籍并以列表的形式显示它们我有一个表单来输入书籍的名称和文件类型,我希望它们显示为名称和文件类型(在同一行)示例(nameofabook epub),但当我尝试显示它们时,它会显示为(nameofabook) 新线epub)这是我的代码谢谢 <?php if (isset($_FILES['file']) && isset($_POST['name'])) { $file = $_FILES['file']; $fi

嘿,伙计们,我创建了一个网站,你可以上传书籍并以列表的形式显示它们我有一个表单来输入书籍的名称和文件类型,我希望它们显示为名称和文件类型(在同一行)示例(nameofabook epub),但当我尝试显示它们时,它会显示为(nameofabook) 新线epub)这是我的代码谢谢

<?php
if (isset($_FILES['file']) && isset($_POST['name'])) {
    $file = $_FILES['file'];

    $file_name = $file['name'];
    $file_type = $file['type'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    $file_ext = explode(".", $file_name);
    $file_ext = strtolower(end($file_ext));

    $allowed = array("mov", "avi", "mp4", "epub", "pdf"); //The extensions you allow

    if (in_array($file_ext, $allowed)) {
        if ($file_error === 0) {
            if ($file_size <= 2097152) {    //the maximum filesize
                $file_destination = ''.$file_name;  // If ' ', the file will be placed in this directory
                if (move_uploaded_file($file_tmp, $file_destination)) {
                    echo $file_destination;

                    $fp = fopen('book_list.txt', "a");
                    fwrite($fp, $_POST['name']. "|||" .$file_destination."\n");
                    fwrite($fp, $_POST['type']. "|||" .$file_destination."\n");
                    fclose($fp);

                } else {
                    echo "An error has been encountered while moving your file!";
                }
            } else {
                echo "Your file is too big!";
            }
        } else {
            echo "An error has been encountered while uploading your file!";
        } 
    } else {
        echo "You can't upload files of this type!";
    }
}
?>

首先…
不要直接在你的网站上传文件!您应该使用API将它们上传到外部的云存储中。在这种情况下,您可以使用。所以,你不需要考虑太多的文件上传。同样,你可以很容易地展示它们
不要在文本文件中存储诸如名称和其他信息(没有文件)。将它们存储在MySQL数据库中是最好的方法

其次…
使用不同的输入来收集书名和其他信息,以便轻松显示和修改它们

第三…
请给出用于显示数据的代码


我是智人,所以我可以写任何错误的东西。请原谅我。

对不起,编码器先生!你们在哪里存储书籍?如何显示书籍?使用一个名为book-list.txt的文件来显示和存储它,我将我的网站托管在000webhost上,所以在该目录中
<!DOCTYPE html>
<html>
    <head>
        <title>Upload a Book</title>
        <link href = "style2.css" type = "text/css" rel = "stylesheet" />
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            Name: <input type="text" name="name" required/> 
            Type: <input type="text" name="type" required/> 
            File: <input type="file" name="file" required/> 
            <input type="submit" value="Upload" />
        </form>
    </body>
</html>