ant处理它这里是SQL的层次结构。在顶部,是数据库,在数据库中是表,在表行中。Nico询问是否将上传文件的数据作为一行插入就足够了。好的,正如我前面提到的,HTML会自动发送数据。在PHP端,它将作为$_FILES['input_name']数组到达,您
ant处理它这里是SQL的层次结构。在顶部,是数据库,在数据库中是表,在表行中。Nico询问是否将上传文件的数据作为一行插入就足够了。好的,正如我前面提到的,HTML会自动发送数据。在PHP端,它将作为$_FILES['input_name']数组到达,您,html,mysql,Html,Mysql,ant处理它这里是SQL的层次结构。在顶部,是数据库,在数据库中是表,在表行中。Nico询问是否将上传文件的数据作为一行插入就足够了。好的,正如我前面提到的,HTML会自动发送数据。在PHP端,它将作为$_FILES['input_name']数组到达,您可以从中获取$_FILES['input_name']['name']作为名称。在SQL查询中插入该名称,我强烈建议您插入行,除非必要,否则不要创建表。太糟糕了。。1) 它允许上传所有文件,包括用于攻击服务器(后门)的PHP文件2)SQL注入也
ant处理它这里是SQL的层次结构。在顶部,是数据库,在数据库中是表,在表行中。Nico询问是否将上传文件的数据作为一行插入就足够了。好的,正如我前面提到的,HTML会自动发送数据。在PHP端,它将作为$_FILES['input_name']数组到达,您可以从中获取$_FILES['input_name']['name']作为名称。在SQL查询中插入该名称,我强烈建议您插入行,除非必要,否则不要创建表。太糟糕了。。1) 它允许上传所有文件,包括用于攻击服务器(后门)的PHP文件2)SQL注入也是真实的,但不太清楚如何注入CREATE TABLE语句并获得对其他表的访问。。但您仍然必须保护它不受SQL注入的影响..我知道,准备好的语句会很好,但我赶时间.“我知道,准备好的语句会很好”一点也不会解决问题..它不会解决SQL注入问题吗?我实际上在寻找如何清理create table。似乎删除特殊字符就足够了。但正如我前面提到的,在这种情况下创建表是没有意义的。非常感谢您如此详尽的回答!!!另外,我不想在浏览器中加载这些文件,因为它们是视频(500mb-2gb),只想在缓冲区模式下播放它们。不用担心,这通常是视频文件由浏览器处理-与mp3文件相同。一定要注意查看我上面答案中的其他链接答案(请向上投票任何你觉得有用的答案)——你会发现更多有用的提示和进一步的详细解释——如果我们能提供更多帮助,请提出任何进一步的问题。
<h1>HTML5 local video file player example</h1>
<div id="message_"></div>
<input type="file" accept="video/*"/>
<video controls autoplay></video>
<script>
(function localFileVideoPlayer() {
'use strict'
var URL = window.URL || window.webkitURL
var displayMessage = function (message, isError) {
var element = document.querySelector('#message_')
element.innerHTML = message
element.className = isError ? 'error' : 'info'
}
var playSelectedFile = function (event) {
var file = this.files[0]
var type = file.type
var videoNode = document.querySelector('video')
var canPlay = videoNode.canPlayType(type)
if (canPlay === '') canPlay = 'no'
var message = 'Can play type "' + type + '": ' + canPlay
var isError = canPlay === 'no'
displayMessage(message, isError)
if (isError) {
return
}
var fileURL = URL.createObjectURL(file)
videoNode.src = fileURL
}
var inputNode = document.querySelector('input')
inputNode.addEventListener('change', playSelectedFile, false)
})()
</script>
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) && $_FILES['userfile']['type'] === 'image/jpeg') {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
/*for creating table, which I don't recommend*/
$sql_query = "CREATE TABLE ".$_FILES['userfile']['name']." INT(6) AUTO_INCREMENT PRIMARY KEY,
type VARCHAR(20) NOT NULL,
timestamp FLOAT
)";
$mysqli->query($sql_query);
?>
<?php
print '<form action="delete.php" method="post">
'.$_FILES['userfile']['name'].' <input type="submit" value="'.$_FILES['userfile']['name'].'" name="delete" />
</form>';
?>
<?php
$sql_query = "DROP TABLE ".$_POST['delete'];
$mysqli->query($sql_query);
?>
<?php
$stmt = $mysqli->prepare("INSERT INTO table (name, type, timestamp) VALUES (?,?,?)");
$stmt->bind_param("ssf", $_FILES['userfile']['name'], $_FILES['userfile']['name'], strtotime(date("Y-m-d H:i:s")));
$stmt->execute();
?>
<?php
$stmt = $mysqli->prepare("DELETE FROM table WHERE name = ?");
$stmt->bind_param("s",$_POST['delete']);
$stmt->execute();
?>
<?php
$myvar = 'Bob';
?>