我想允许用户将音频文件上传到我的网站,但是在编写代码后,事实证明它无法上传音频文件。我尝试了其他文件类型,它正在为它们工作。
这是HTML表单:
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="audioFile"/>
<input type="submit" value="Upload Audio" name="save_audio"/>
</form>
这是php代码:
<?php
if(isset($_POST['save_audio']) && $_POST['save_audio']=="Upload Audio") { $dir='uploads/'; $audio_path=$dir.basename($_FILES['audioFile']['name']);
if(move_uploaded_file($_FILES['audioFile']['tmp_name'],$audio_path))
{
echo 'uploaded successfully.';
}else
echo 'Upload Failed';
} ?>
对于其他文件类型,正在接收回显“成功上传成功”,但是当我尝试音频文件时,却收到“上传失败”。
答案 0 :(得分:0)
从安全的角度(我在安全SE上找到了这个);此代码可能容易受到目录遍历攻击,因为在使用move_uploaded_file
之前未清除文件名。例如,如果用户发布了一个名为../../../etc/passwd
的文件,该怎么办?手册中提到了输入卫生和使用open_basedir
。