如何仅上传特定扩展名的文件?

7 浏览
0 Comments

如何仅上传特定扩展名的文件?

我只想上传以.mp3为扩展名的文件。\n我尝试使用以下代码上传文件:\nindex.php:\n

\nupload.php:\n

$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ($extension == "mp3"){
    $target = "upload/";
    move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);
}
else {
    echo "上传失败";
}

\n我的代码有什么问题?

0
0 Comments

问题出现的原因是,上传文件的代码中没有限制只能上传特定扩展名的文件。解决方法是在代码中添加一个条件判断,只有当上传文件的扩展名为"mp3"时,才进行文件上传操作。

具体的解决方法如下:


以上是经过测试的代码,通过判断上传文件的扩展名是否为"mp3"来决定是否执行文件上传操作。当扩展名不是"mp3"时,代码会输出"Failed"。

0
0 Comments

如何仅上传特定扩展名的文件?

这似乎是一个字符串大小写比较的问题。在小写或大写格式中进行比较应该可以解决。

$temp = end(explode(".", $_FILES["file"]["name"]));
$extension = strtolower($temp);
if ($extension == "mp3"){
    $target = "upload/";
    move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);
}
else {
    echo "Failed";
}

为什么应该“尝试这样做”?一个好的答案总是会解释做了什么以及为什么那样做,不仅为了提问者,也为了未来访问Stack Overflow的人。

好吧,也许我认为字符比较可能是这里的问题。我已经解释了我想要建议的内容。我将尽量在以后更加具体。我是Stack Overflow的新手,请多包涵。

0
0 Comments

问题的原因是需要上传一个特定扩展名的文件,解决方法是使用PHP代码来判断文件的扩展名并进行上传。以下是相应的文章:

如何仅上传特定扩展名的文件?

有时候我们需要限制用户只能上传特定扩展名的文件,这可以通过使用PHP来实现。下面是一个示例代码:

$name = $_FILES["file"]["name"];
$extension = end((explode(".", $name))); //extra () to prevent notice
if ($extension == "mp3"){
    $target = "upload/";
    move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);
}
else {
    echo "Failed";
}

以上代码会判断上传的文件是否为mp3格式,如果是,则将文件移动到指定的目录中。如果文件格式不是mp3,则会输出"Failed"。

你也可以使用`pathinfo()`函数来获取文件的扩展名,示例如下:

$path_parts = pathinfo($_FILES["file"]["name"]);
$extension = $path_parts['extension'];

为什么要使用上述代码?一个好的答案应该解释代码的作用和原因,不仅仅是为了帮助提问者,也有助于其他访问该问题的人。

0