안녕하세요 .mp3 형식의 파일을 base64로 변환 한 다음 데이터베이스에 저장하면 데이터베이스에서 파일을 가져 와서 재생합니다. 이 파일을 6 초 동안 재생 했나요? 나는 내가 어디로 잘못 갔는지 알아낼 수 없습니다. 나는 만들고있는 사이트에 대해서만이 테스트 단계에 있지만 실제로 사이트를 완전히 나가기 전에이 권한을 얻고 싶습니다. 완벽하게 작동하는 이미지를 설정했지만 오디오 및 비디오는 전공으로 설정하고 있습니다. 문제. 이 양식을base64로 인코딩 된 음악 파일 만 6 초 재생
<form action="action2.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /><br />
<input type="text" name="user_id" value="<?php echo $_SESSION['user_id'] ?>" hidden="" />
<input type="submit" name="submit" value="Submit" />
</form>
을 업로드하는 코드이며,이 업로드, 저장, 인코딩 및 파일을 삭제하는 부분입니다. 다음
<?php
require 'assests/classes/init.php';
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$allowedExts = array("mp3","wav","ogg");
if ((($_FILES["file"]["type"] == "audio/mpeg")
|| ($_FILES["file"]["type"] == "audio/x-mpeg")
|| ($_FILES["file"]["type"] == "audio/mp3")
|| ($_FILES["file"]["type"] == "audio/x-mp3")
|| ($_FILES["file"]["type"] == "audio/mpeg3")
|| ($_FILES["file"]["type"] == "audio/x-mpeg3")
|| ($_FILES["file"]["type"] == "audio/mpg")
|| ($_FILES["file"]["type"] == "audio/x-mpg")
|| ($_FILES["file"]["type"] == "audio/x-mpegaudio")
|| ($_FILES["file"]["type"] == "audio/wav")
|| ($_FILES["file"]["type"] == "audio/x-wav")
|| ($_FILES["file"]["type"] == "audio/ogg"))
&& ($_FILES["file"]["size"] < 2000000000000000000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1048576) . " MB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
echo (20000000/1024);
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
var_dump($_FILES);
$byte_array = file_get_contents("upload/" . $_FILES["file"]["name"]);
$audio = base64_encode($byte_array);
unlink('upload/'.$_FILES["file"]["name"]);
$jk = new users;
$jk->audio_upload($_POST['user_id'],$audio);
echo $audio;
var_dump($jk->audio_upload($_POST['user_id'],$audio));
var_dump($audio);
}
}
}
else
{
echo "Invalid file";
}
var_dump($_FILES);
var_dump($extension);
?>
나는이는
<?php
$jk = new users;
$audio = $jk->testing_audio_base_64($_SESSION['user_id']);
var_dump($audio);
?>
<audio controls >
<?php echo '<source src="data:audio/mp3;base64, '.$audio.'" >'?>
Your browser does not support the audio element.
</audio>
을 재생하는 데 사용하지만, 그것은 단지 파일의 6 초 보여줍니다? 내가 여기서 뭔가 잘못 했습니까?
에 TXT에서 유형을 changeing하고 적절한 작업 않네 그래서? base64로 인코딩 한 내용이 실제로 데이터베이스에 저장되었는지 확인 했습니까? 데이터베이스에 저장된 내용이 실제로 데이터 URL에 표시되는지 확인 했습니까? 특정 브라우저에서 데이터 URL의 크기 제한을 초과하지 않았 음을 확인 했습니까? – Oswald
데이터베이스에서 파일을 검사하여 올바르게 업로드했는데 데이터 URL에 있는지 확인했습니다. 보기 소스는