将音频文件从React前端发送到Java后端

时间:2020-07-30 18:04:27

标签: javascript java mysql reactjs wav

如何将上传的.wav音频文件传递到Java后端,然后将该文件保存到目录中?

ie:用户上传文件,点击保存,然后服务器将文件保存到其他目录。

JavaScript /反应

最初使用html输入上传文件,然后通过javascript中的FileReader读取

<input
 accept=".wav"
 className={classes.input}
 id="contained-button-file-1"
 name='CUST1'
 type="file"
 onChange={handleUploadClick}/>

//用于文件上传的JavaScript

    const handleUploadClick = (event) => {
    let panel = event.target.name;
    let file = event.target.files[0];
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = (e) => {
        setUploadedFileName(prev => ({
            ...prev,
            [panel]: file.name
        }));
        setUploadedFiles(prev => ({
            ...prev,
            [panel]: file
        }))
        setAudio(prev => ({
            ...prev,
            [panel]: new Audio(e.target.result)
        }));
    };
};

const saveFile= (prompt) => {
    let fileData= { 
        audioFile: uploadedFiles[prompt] || '',
        prompt: prompt,
        fileName: uploadedFileName[prompt]
     }
     api.save(fileData)
}

发布的数据包含一些将保存到MySQL模式的数据,我们将.wav文件保存到目录中。

后端的相应文件写入部分将如何?还是我将文件错误地传递到了后端?

到目前为止,我有类似的东西,但是它不起作用。

            AudioInputStream clip = AudioSystem.getAudioInputStream(audioDTO.getAudioFile().getInputStream());
        AudioSystem.write(clip,
                AudioFileFormat.Type.WAVE,
                new File("C:\\sounds\\" + audioDTO.getFileName()));

0 个答案:

没有答案