其目的是让人们以音频的形式上传语言示例。文件应使用用户选择的语言名称。应以下拉菜单的形式提供语言列表。
一行中的操作: 1.用户从下拉列表中选择语言名称。2.用户选择本地音频文件。3.用户按upload按钮。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>发布于 2014-12-19 20:01:26
这会给文件名增加一个随机数,你不应该直接使用文件名,因为这有安全风险,我把它留在了文件名的顶部,但如果我是你,我会把它完全去掉,然后直接制作你自己的文件名。这将搜索目录以查看filename是否已经存在,如果存在,则添加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>https://stackoverflow.com/questions/27565489
复制相似问题