目的是让人们将语言示例上传为音频。文件应获得用户选择的语言的名称。语言列表应作为下拉菜单提供。
连续的行动: 1.用户从下拉列表中选择语言名称。 2.用户选择本地音频文件。 3.用户按下上传按钮。 4.脚本使用从下拉列表中选择的语言重命名用户提供的文件。 5.理想情况下,它能够识别是否已存在具有此名称的文件。如果是,则应提供以下文件编号,如“maltese01.wav,maltese02.wav”等。
因为php对我而言是新的,这就是我被困住的地方。任何帮助表示赞赏。这就是我到目前为止所做的工作。该脚本是从教程中采用的。
<?php
if(isset($_FILES['sound'])){
$errors= array();
$file_name = $_FILES['sound']['name'];
$file_size =$_FILES['sound']['size'];
$file_tmp =$_FILES['sound']['tmp_name'];
$file_type=$_FILES['sound']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['sound']['name'])));
$expensions= array("wav","aiff","mp3","m4a","mp4","ogg");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a WAV, MP3, MP4, M4A or OGG file.";
}
if($file_size > 8388608){
$errors[]='Sorry. Your file ist quite large. Maximum file size is 8 MB';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"sounds/".$file_name);
echo "Thank you!";
}else{
print_r($errors);
}
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="sound" />
<input type="submit"/>
</form>
答案 0 :(得分:1)
这会在文件名中添加一个随机数,你不应该直接使用文件名,因为这是一个安全风险,我把它留在顶部,但如果我是你,我会把它全部带出去并立即自己做。这将搜索目录以查看文件名是否已存在,如果存在,则添加1。应该工作,让我知道。
<?php
$language=htmlentities($_POST['language']);
if(isset($_FILES['sound'])){
$errors= array();
$file_name = $_FILES['sound']['name'];
$file_size =$_FILES['sound']['size'];
$file_tmp =$_FILES['sound']['tmp_name'];
$file_type=$_FILES['sound']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['sound']['name'])));
$expensions= array("wav","aiff","mp3","m4a","mp4","ogg");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a WAV, MP3, MP4, M4A or OGG file.";
}
if($file_size > 8388608){
$errors[]='Sorry. Your file ist quite large. Maximum file size is 8 MB';
}
if(empty($errors)==true){
######################################## Directory Searcher #############################################
$random_number=rand();
$file_name=$language.$random_number.$file_ext;
foreach(glob('sounds/*') as $sound)
{
if($sound == $filename){$filename=$language.$random_number."1".$file_ext;
}
#############################################################################################################
move_uploaded_file($file_tmp,"sounds/".$language.$file_name);
echo "Thank you!";
}else{
print_r($errors);
}
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<select name="language">
<option value="maltese">Maltese</option>
<option value="english">English</option>
</select>
<input type="file" name="sound" />
<input type="submit"/>
</form>