Поэтому я пытаюсь реализовать страницу загрузки в моем приложении, и на этой странице вы можете загрузить как изображение, так и песню, а также другие вещи (жанр, описание и т. Д.).Мне удалось заставить изображение работать, используя вмешательство изображения, но я пытаюсь заставить мой файл mp3 / wav (используя функцию декодирования base64) быть прочитанным как файл, таким образом я могу использовать метод перемещения, чтобы сохранить его в локальной папке (действительная загрузка), и я не понимаю, почему laravel читает это как строку.Есть что-то, чего мне не хватает?
функция декодирования
function base64_to_song($base64_string, $output_file) {
// open the output file for writing
$ifp = fopen( $output_file, 'wb' );
// split the string on commas
// $data[ 0 ] == "data:image/png;base64"
// $data[ 1 ] == <actual base64 string>
$data = explode( ',', $base64_string );
// we could add validation here with ensuring count( $data ) > 1
fwrite( $ifp, base64_decode($data[1]));
// clean up the file resource
fclose( $ifp );
return $output_file;
}
В моем контроллере:
$songextension = $request->get('songextension');
$file = $request->json()->get('song_file');
$extension = $songextension;
$filename = rand(11111,99999).'.'.$extension;
$newfile = base64_to_song($file, $filename);
$destinationPath="uploads/music";
$newfile->move($destinationPath, $filename);
Он просто продолжает читать $ newfile в виде строки, а не вывода