我有一個使用PHP在我的服務器上傳文件的HTML文件上傳表單。它上傳圖像文件,但其他類型的文件,如mp3或mp4不上傳。我無法弄清楚有什麼問題。我的文件上傳表單不會上傳非圖像文件。爲什麼?
下面是代碼:
HTML:
<form id="uploadForm" method="post" action="upload.php?ref=home" enctype="multipart/form-data">
<input id="shout_media" class="hidden" name="media" type="file" />
</form>
PHP:
<?php
if(isset($_GET['ref'])) {
if((isset($_FILES['media']))&&(is_uploaded_file($_FILES['media']['tmp_name']))) {
$name = $_FILES['media']['name'];
$tmpname = $_FILES['media']['tmp_name'];
$size = $_FILES['media']['size'];
$i = strrpos($name,".");
if (!$i) { return ""; }
$l = strlen($name) - $i;
$xt = substr($name,$i+1,$l);
$ext = strtolower($xt);
if(preg_match("/(jpg|jpeg|png|gif|mp3|mp4)/",$ext)) {
if(move_uploaded_file($tmpname,'photos/'.$name.'')) {
echo 'Uploaded successfully!';
}
}
}
我使用jQuery和http://www.malsup.com/jquery/form/阿賈克斯表單插件上傳文件,無需重新加載頁面。
AJAX表格插件代碼:
$("#uploadForm").ajaxForm({
success: function(responseText) {
if(responseText.length>0) {
$(".uploadStatus").text('Uploaded!');
}
}
}).submit();
這是什麼問題,我該怎麼解決呢?我需要允許我的用戶上傳其他類型的文件,最重要的是MP3和MP4。
謝謝!
這是正確的答案大,但你可能還需要別的地方移動它:此代碼還會將您的mp3和mp4文件放在「照片」目錄中,這可能不是您想要的。 – ChrisC 2013-03-09 14:33:50
對不起!我忘了說明。我在我的代碼中添加了mp3,mp4,但它不工作。它顯示$ _FILES ['media']是空的。 – Adil 2013-03-09 14:35:16
@ChrisC謝謝,我已經更新了我的回答 – 2013-03-09 14:36:38