2010-09-29 43 views
0

在谷歌环顾一段时间后,我卡住了= /有人可以帮我吗?php脚本上传MP3文件不会玩球

似乎与我尝试的大多数文件一起工作,但.mp3文件除外。

的(X)HTML

<html> 
<body> 
    <form enctype="multipart/form-data" action="upload.php" method="post"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="71680000" /> 
    Choose a file to upload: <input name="uploaded_file" type="file" /> 
    <input type="submit" value="Upload" /> 
    </form> 
</body> 
</html> 

的PHP

<?php 
//Сheck that we have a file 
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { 
    //Check file extension and size 
    $filename = basename($_FILES['uploaded_file']['name']); 
    $ext = substr($filename, strrpos($filename, '.') + 1); 
    if (($ext == "mp3") && ($_FILES["uploaded_file"]["type"] == "audio/mpeg") && 
    ($_FILES["uploaded_file"]["size"] < 71680000)) { 
    //Determine the path to which we want to save this file 
     $newname = dirname(__FILE__).'/up/'.$filename; 
     //Check if the file with the same name is already exists on the server 
     if (!file_exists($newname)) { 
     //Attempt to move the uploaded file to it's new place 
     if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) { 
      echo "It's done! The file has been saved as: ".$newname; 
     } else { 
      echo "Error: A problem occurred during file upload!"; 
     } 
     } else { 
     echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists"; 
     } 
    } else { 
    echo "Error: Only .mp3 files under are accepted for upload"; 
    } 
} else { 
echo "Error: No file uploaded"; 
} 
?> 

编辑:这是后续代码var_dump($ _ FILES)的输出;

array(1) { 
    ["uploaded_file"]=> 
    array(5) { 
    ["name"]=> 
    string(17) "03-AsWeTravel.mp3" 
    ["type"]=> 
    string(0) "" 
    ["tmp_name"]=> 
    string(0) "" 
    ["error"]=> 
    int(1) 
    ["size"]=> 
    int(0) 
    } 
} 
+0

什么是错误?你面临什么问题?更多信息..你得到哪些错误回声 – Stewie 2010-09-29 19:17:39

+0

你确定mime类型是audo/mpeg吗? – methodin 2010-09-29 19:20:16

+0

这是否仅针对.mp3文件或其他文件类型(包括二进制和文本文件 - 例如,您可以将脚本更改为接受其他文件类型,并尝试使用较大的.jpg文件进行检查)。 – 2010-09-29 19:20:34

回答

0

http://www.php.net/manual/en/features.file-upload.errors.php

UPLOAD_ERR_INI_SIZE 
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

你是如何处理从表单中MAX_FILE_SIZE?

尝试改变

upload_max_filesize = 70M 

或任何你的最大尺寸应该是在你的php.ini。

+0

是的,我认为它必须在php.ini中做最大尺寸,我复制粘贴到我的本地主机上的代码,它完美的作品,MP3文件上传到up文件夹。 – Christophe 2010-09-29 19:28:25

+0

我认为你是对的。刚刚检查phpinfo(),并意识到最大文件上传大小为2MB。假设我可以在.htaccess文件中更改它? – Dean 2010-09-29 19:39:44

+0

@methodin:刚刚注意到您对表单的评论。谢谢! – Dean 2010-09-29 19:41:22

0

你有控制主机吗?难道是MP3只是被封锁?

我已经看到它之前在一个主要的ISP的免费网络托管计划...

+0

是的,自从我在自己的机器上运行脚本后,我完全可以控制它。 – Dean 2010-09-29 19:46:08