Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php-xml上传文件_Php_Xml - Fatal编程技术网

用php-xml上传文件

用php-xml上传文件,php,xml,Php,Xml,我对这个代码有一些问题。 问题在于脚本的上传部分,当用户保存信息时,脚本不会上传文件。也许我犯了一些错误? xml文件工作正常,并且保存任何新插入的信息。我有两个文件输入来分隔文件。。我认为问题与此有关 <?php if(isset($_POST['savetrack'])){ $errors= array(); foreach($_FILES['audio_file']['tmp_name'] as $key => $tmp_name ){ $Audiofile_nam

我对这个代码有一些问题。 问题在于脚本的上传部分,当用户保存信息时,脚本不会上传文件。也许我犯了一些错误? xml文件工作正常,并且保存任何新插入的信息。我有两个文件输入来分隔文件。。我认为问题与此有关

<?php
if(isset($_POST['savetrack'])){

 $errors= array();
foreach($_FILES['audio_file']['tmp_name'] as $key => $tmp_name ){
    $Audiofile_name = $key.$_FILES['audio_file']['name'][$key];
    $Audiofile_size =$_FILES['audio_file']['size'][$key];
    $Audiofile_tmp =$_FILES['audio_file']['tmp_name'][$key];
    $Audiofile_type=$_FILES['audio_file']['type'][$key];

    $audioextensions = array("mp3");

$Audiofile_ext=explode('.',$_FILES['audio_file']['name'][$key]) ;
$Audiofile_ext=end($Audiofile_ext);  
$Audiofile_ext=strtolower(end(explode('.',$_FILES['audio_file']['name'][$key])));  
if(in_array($Audiofile_ext,$audioextensions ) === false){
$errors[]="extension not allowed";
}            

    if($file_size > 50097152){
        $errors[]='File size must be less than 50 MB';
    }       
    $desired_dir="mp3";
    if(empty($errors)==true){
        if(is_dir("$desired_dir/".$Audiofile_name)==false){
            move_uploaded_file($Audiofile_tmp,"mp3/".$Audiofile_name);
        }else{                                  //rename the file if another one exist
            $new_dir="mp3/".$Audiofile_name.time();
             rename($Audiofile_tmp,$new_dir) ;  
        }           
    }else{
            print_r($errors);
    }
}

我通过使用upload类找到了一个解决方案,它似乎很有效。现在的问题是在我需要的地方加载上传的音频文件,控制台显示以下错误:

未捕获(承诺中)DOMEException:无法解码音频数据 获取404(未找到)

我不知道这个问题是因为文件名是从保存到xml中的标记加载的,还是因为存在其他类型的问题。如果我手动插入文件位置,它将工作,但我需要从xml加载它

这是我需要加载mp3文件的html代码,我插入了上传的mp3所在的路径,但没有成功

<ul class="grid">
<?php
try{
$xml=simplexml_load_file("tracks.xml") or die("Error: Cannot create    object");
}catch (Exception $e){
echo $e;
} 
foreach($xml as $child)
{
$artistname = $child->artist;
$tracktitle = $child->title;
$relyear = $child->year;
$label = $child->label;
$audiofile = $child->audio;
$coverfile = $child->cover;
?>
<li class="grid__item">     
<a class="grid__link" href="#album" data-playlist-1="mp3/<?php echo  $audiofile ?>" data-playlist-2="mp3/<?php echo $audiofile ?>"> 
<div class="img-wrap img-wrap--grid">
<svg class="lp lp--grid">
<use xlink:href="#icon-lp-mini"></use>
</svg>
<img class="img img--grid" src="img/<?php echo $coverfile ?>" alt="album cover" />
</div>
<span class="year"><?php echo $relyear ?></span>
<h2 class="artist"><?php echo $artistname ?></h2>
<h3 class="title"><?php echo $tracktitle ?></h3>
</a>
</li>
<?php } ?>
</ul>
    艺术家; $tracktitle=$child->title; $relyear=$child->year; $label=$child->label; $audiofile=$child->audio; $coverfile=$child->cover; ?>
<ul class="grid">
<?php
try{
$xml=simplexml_load_file("tracks.xml") or die("Error: Cannot create    object");
}catch (Exception $e){
echo $e;
} 
foreach($xml as $child)
{
$artistname = $child->artist;
$tracktitle = $child->title;
$relyear = $child->year;
$label = $child->label;
$audiofile = $child->audio;
$coverfile = $child->cover;
?>
<li class="grid__item">     
<a class="grid__link" href="#album" data-playlist-1="mp3/<?php echo  $audiofile ?>" data-playlist-2="mp3/<?php echo $audiofile ?>"> 
<div class="img-wrap img-wrap--grid">
<svg class="lp lp--grid">
<use xlink:href="#icon-lp-mini"></use>
</svg>
<img class="img img--grid" src="img/<?php echo $coverfile ?>" alt="album cover" />
</div>
<span class="year"><?php echo $relyear ?></span>
<h2 class="artist"><?php echo $artistname ?></h2>
<h3 class="title"><?php echo $tracktitle ?></h3>
</a>
</li>
<?php } ?>
</ul>