Способ отправки файла .mp3 из Java MVC в FEJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Способ отправки файла .mp3 из Java MVC в FE

Сообщение Anonymous »

В настоящее время я работаю с Java MVC (Java 8) и VueJS (Vue 2).
Это моя проблема, описывающая шаг за шагом
  • Я сохранил свой файл .mp3 на облачном сервере.
  • Получите мой файл для отправки во внешний интерфейс для показа. И моя проблема началась здесь. Я не знаю, как отправить файл в FE.
Мой код:

Код: Выделить всё

@RequestMapping(value = "/getAudioFile", method = RequestMethod.GET)
public void getAudioFile(@RequestParam("filePath") String filePath, HttpServletResponse response) {
try {
byte[] fileContent = courseMaterialPdfContentService.getFile(filePath);

if (fileContent == null || fileContent.length == 0) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, "File not found or empty");
return;
}

response.setContentType("audio/mpeg");
response.setContentLength(fileContent.length);
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
response.setHeader("Content-Disposition", "inline");

try (OutputStream os = response.getOutputStream()) {
os.write(fileContent);
os.flush();
}
} catch (IOException e) {
e.printStackTrace();
try {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error reading file");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Мой VueJS:

Код: Выделить всё

getAudioContent: function () {
return new Promise((resolve, reject) => {
const filePath = this.currentAiContent.path;

if (!filePath) {
reject(new Error("File path is missing"));
return;
}

this.$api.get(`/api/courseMaterialPdfContent/getAudioFile`, {'filePath': filePath}, {
responseType: 'blob',
})
.then((response) => {
const audioBlob = new Blob([response.data], { type: 'audio/mpeg' });
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);

audio.addEventListener('loadedmetadata', () => {
resolve(audioUrl);
});
audio.load();
resolve(audioUrl);

audio.play();
})
.catch((err) => {
console.error("Error while fetching audio file: ", err);
reject(err);
});
});
},

Я хочу найти способ получить файл из Backend, а затем сохранить его где-нибудь для использования в следующий раз.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -mvc-to-fe
Ответить

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

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

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

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

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