为什么此代码不允许上传音频文件?

时间:2018-12-15 09:14:41

标签: php audio file-upload

我想允许用户将音频文件上传到我的网站,但是在编写代码后,事实证明它无法上传音频文件。我尝试了其他文件类型,它正在为它们工作。

这是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';

} ?>

对于其他文件类型,正在接收回显“成功上传成功”,但是当我尝试音频文件时,却收到“上传失败”。

1 个答案:

答案 0 :(得分:0)

从安全的角度(我在安全SE上找到了这个);此代码可能容易受到目录遍历攻击,因为在使用move_uploaded_file之前未清除文件名。例如,如果用户发布了一个名为../../../etc/passwd的文件,该怎么办?手册中提到了输入卫生和使用open_basedir

http://php.net/manual/en/function.move-uploaded-file.php