Загрузить файл, создающий файл .htm вместо .mp3 после загрузки в моем проекте laravel 10Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Загрузить файл, создающий файл .htm вместо .mp3 после загрузки в моем проекте laravel 10

Сообщение Anonymous »


Привет, я работаю над этим простым проектом, в котором хочу загрузить купленный файл. После нажатия кнопки загрузки. Я ожидал загрузки файла .mp3, но вместо этого получил .htm, и когда я пытаюсь щелкнуть загруженный файл, он просто перенаправляет меня на страницу просмотра.

Вот коды для моего контроллера:

публичная функция downloadSong($songId) { $песня = Песня::найти($songId); если ($песня) { $filePath = Storage_path('app/public/audio/songs/'. $song->audio_file); если (file_exists($filePath)) { $fileName = $song->title. '.mp3'; возврат ответа()->загрузка($filePath, $fileName, [ 'Content-Type' => 'audio/mpeg', 'Content-Disposition' => 'attachment; имя_файла="' . $имя_файла . '"', ]); } } return redirect()->back()->with('error', 'Песня не найдена.'); } Вот кнопка загрузки:

song->id) }}" class="btn btn-primary" download>Загрузить песню Вот маршрут:

Route::get('/orders/download/song/{song}', [OrderController::class, 'downloadSong'])->name('download.song'); Вот ссылка, почему я использую $songId в качестве аргумента для получения данных из заказа:

публичная функция PlaceOrder() { $user = auth()->user(); $cartItems = $user->cartItems; если (count($cartItems) === 0) { return redirect()->route('cart.index')->with('error', 'Ваша корзина пуста. Нечего заказывать.'); } $order = Order::create([ 'user_id' => $user->id, 'order_total' => $cartItems->sum('цена'), ]); foreach ($cartItems как $cartItem) { $цена = 0; $songId = ноль; $albumId = ноль; if ($cartItem->product_type === 'song' && $cartItem->song) { $price = $cartItem->песня->цена; $songId = $cartItem->песня->id; } elseif ($cartItem->product_type === 'album' && $cartItem->album) { $price = $cartItem->альбом->цена; $albumId = $cartItem->альбом->id; } OrderItem::create([ 'order_id' => $order->id, 'product_id' => $cartItem->product_id, 'product_type' => $cartItem->product_type, 'song_id' => $songId, 'album_id' => $albumId, 'количество' => $cartItem->количество, 'цена' => $цена, ]); $cartItem->удалить(); } return redirect()->route('orders.index')->with('success', 'Заказ размещен успешно.'); } Аудио в настоящее время хранится в каталоге Storage/app/public/audio/songs.

Вот результат загрузки файла в мою папку загрузок:
Изображение


Я пытался использовать Response $response в качестве аргумента, но все равно безрезультатно. Я ожидаю, что после загрузки я получу файл .mp3.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»