【发布时间】:2014-05-03 19:08:20
【问题描述】:
我有问题。我正在编写一个简单的表单来将文件上传到服务器。我可以发送任何没有 mp3 的文件,我不知道为什么。 add2.php:
{
$max_size = 104857600;
if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
if ($_FILES['plik']['size'] > $max_size) {
echo 'Error! File is too big!';
} else {
echo 'I have file, name: '.$_FILES['plik']['name'];
$nazwa= $_FILES['plik']['name'];
mysql_query("INSERT INTO files (name) values ('{$nazwa}') ");
echo '<br/>';
if (isset($_FILES['plik']['type'])) {
echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
}
move_uploaded_file($_FILES['plik']['tmp_name'],
$_SERVER['DOCUMENT_ROOT'].'/music/'.$_FILES['plik']['name']);
}
} else {
echo 'Error with sending file!';
}
当我尝试发送 mp3 时,我得到“发送文件时出错!”。
编辑:
<form action="add2.php" method="POST" ENCTYPE="multipart/form-data">
<input type="file" name="plik"/><br/>
<input type="submit" value="Send file"/>
</form>';
【问题讨论】:
-
上传代码在哪里?我的猜测是你没有编码类型。此外,您的代码非常不安全。使用 PDO 或类似的准备好的/参数化查询来避免 SQL 注入攻击。不要让用户指定您办公桌上文件的名称……当然也不要将用户上传的文件保存在您的 Web 服务器的文档根目录中。有人可以上传
something-evil.php并运行他们想要的任何东西。 -
我用表单插入代码