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 Form Plugin を使用して、ページをリロードせずにファイルをアップロードしています。
AJAX フォーム プラグイン コード:
$("#uploadForm").ajaxForm({
success: function(responseText) {
if(responseText.length>0) {
$(".uploadStatus").text('Uploaded!');
}
}
}).submit();
何が問題で、どうすれば解決できますか? ユーザーが他の種類のファイル (最も重要なのは MP3 と MP4) をアップロードできるようにする必要があります。
ありがとうございました!