html / php使用自定义文件名创建并将文本文件保存到根目录

时间:2018-02-20 14:16:28

标签: javascript php html html5 forms

我想通过我的网站页面创建一个带有自定义文件名的文本文件。可以只使用html或php吗?

这是我的代码:



 <form id="raw-text" >
    	<textarea name="raw" rows="10" id="raw" style="word-wrap: break-word; resize: horizontal; height: 700px; width: 99%"></textarea>
    </form>
    <input id=“filename" placeholder="File Name here"></input> 
    <button name="submit" onclick="form.echo()" >Send!</button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

HTML无法创建文件。

假设您有一个文件(让我们称之为“index.php”),下面是处理服务器端php代码和客户端html代码所需的代码示例。

<?php
    if( $_POST["name"] || $_POST["data"] ) {
        $name   = $_POST['name'];
        $data   = $_POST['data'];

        if(file_exists($name)){
            // Do something if file already exists

        }else{
            // Creates file if it doens't exist
            file_put_contents($name , $data);
        }
        exit();
    }
?>
<html>
    <body>
        <form action = "?" method = "POST" id="raw-text" >
            <textarea name="data" rows="10" id="raw" style="word-wrap: break-word; resize: horizontal; height: 700px; width: 99%"></textarea>
            <input name="name" placeholder="File Name here"></input> 
            <button name="submit">Send!</button>
        </form>
    </body>
</html>

以上功能可以创建文件并插入用户输入的数据 如果php脚本位于单独的文件中,则可以更改 <form action = "?"<form action = "Path_To_File"

请注意:
$_POST['…']从表单中检索指定的html标记 有关file_put_contents php函数的详细信息,请参阅http://php.net/manual/en/function.file-put-contents.php

但是,我同意评论,这不是一种安全的方法 此代码是一个示例,您需要测试许多内容以使其安全并在您的应用程序中实现它 而且你需要确保用户将要创建的文件不是允许他们做任何他们想做的事情的系统文件或php文件。

答案 1 :(得分:0)

出于安全原因,您不应让用户根据其输入创建文件;特别是让用户根据输入设置文件名。

如果他们创建了 .php 文件,然后浏览了它,那么您将允许他们在您的服务器上运行自己的PHP代码。这使他们可以对您的系统进行大量访问。他们还可以添加 .htaccess 文件或 .ini 文件,这些文件也会非常糟糕。

为了确保输入正确的数据并且文件无法用于利用您的系统所需的检查次数将是巨大的,您几乎肯定会错过可能被利用的内容。最好的答案是不允许这样做,并找到一种不同的方式来做你想做的事。