javascript - 您可以使用 HTML 将文本输入作为文件上传吗?

标签 javascript php html

我正在尝试从 HTML 文本表单中获取用户的输入

<input type="text" name="comments" value="Comment">

有没有办法在用户点击表单的提交按钮时将输入的文本作为 txt 文件提交,就像我有一个

type='file' 

表格类型?

(我可以在这个项目中使用原生的html、js或php)

最佳答案

首先,创建一个名为temp的目录,然后将.htaccess文件放入其中,其中包含:deny from all。 然后用代码制作一个php脚本:

<?php
if (!empty($_POST)) {
    file_put_contents('temp/file.txt', $_POST['comments']);
}

不要忘记临时文件夹的写权限!

但是!永远不要保存带有 .php 扩展名的文件,因为一些真正的黑客可以在 textarea 中编写 php 代码然后保存并执行它(如果你不创建 .htaccess使用拒绝所有)。此外,您可以使用 chmod 拒绝执行 temp/ 目录中的所有文件(仅适用于 linux,适用于 windows .htaccess 将帮助您)。您也可以将 temp/ 目录放在服务器的 www/ (webroot) 目录下(www/ 目录的路径是像这样:/site.com/www/,只需创建一个路径为:/site.com/temp/)的目录,那么就没有人可以执行创建的文件。将文件写入此文件夹将是这样的:

file_put_contents('../temp/file.txt', $_POST['comments']);

关于javascript - 您可以使用 HTML 将文本输入作为文件上传吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541420/

相关文章:

javascript - 更改 Discord 机器人的时间和日期格式

php - 将新列中的客户电子邮件添加到 Woocommerce 上的管理订单列表

html - 本地 HTML5 页面/DIV 的屏幕截图

javascript - 从服务器下载文件的最佳方式是什么

javascript - 获取 3 个数组元素并使它们成为单一格式的字符串

PHP:从路径中删除文件名

html - Flexbox:如何根据子项中的文本量制作包含 div 的比例?

javascript - Plotly.js - gd.data 必须是一个数组

javascript - 在继续之前等待对象构造函数内的方法完成

php - Twilio 在 PHP 中无法识别新行