如何将音频文件从Vue.js上载到Laravel?
我试着上传一个像图片一样的音频文件,但没有成功。如何从音频文件中提取数据并将其发送给Laravel如何将音频文件从Vue.js上载到Laravel?,laravel,vue.js,Laravel,Vue.js,我试着上传一个像图片一样的音频文件,但没有成功。如何从音频文件中提取数据并将其发送给Laravel <input type="file" class="user-edit-form browse-file" accept=".mp3,audio/*" @change="uploadSong" > uploadSong (e) { console.log(e) this.songUpload = e.target.files[0] if (!thi
<input
type="file"
class="user-edit-form browse-file"
accept=".mp3,audio/*"
@change="uploadSong"
>
uploadSong (e) {
console.log(e)
this.songUpload = e.target.files[0]
if (!this.songUpload.length) {
return
}
this.createSong(this.songUpload[0])
},
createSong (file) {
let reader = new FileReader()
let vm = this
reader.onload = (e) => {
vm.song = e.target.result
console.log(e.target.result)
}
reader.readAsDataURL(file)
}
上传歌曲(e){
控制台日志(e)
this.songUpload=e.target.files[0]
如果(!this.songUpload.length){
返回
}
this.createSong(this.songUpload[0])
},
createSong(文件){
let reader=new FileReader()
让vm=这个
reader.onload=(e)=>{
vm.song=e.target.result
console.log(e.target.result)
}
reader.readAsDataURL(文件)
}
您可以尝试以下代码:
输入:
<input type="file" id="file" ref="file" v-on:change="handleFileUpload()"/>
最后,提交表格:
submitAudioFile(){
let formData = new FormData();
// add file
formData.append('file', this.file);
axios.post( '/upload',
formData,
{
headers: {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data'
}
}
)
.then(function(){
console.log('success');
})
.catch(function(){
console.log('failed');
});
您可以尝试以下代码: 输入:
<input type="file" id="file" ref="file" v-on:change="handleFileUpload()"/>
最后,提交表格:
submitAudioFile(){
let formData = new FormData();
// add file
formData.append('file', this.file);
axios.post( '/upload',
formData,
{
headers: {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data'
}
}
)
.then(function(){
console.log('success');
})
.catch(function(){
console.log('failed');
});
输入:
<input type="file" id="file" ref="file" v-on:change="handleFileUpload()"/>
输入:
<input type="file" id="file" ref="file" v-on:change="handleFileUpload()"/>
您是否将ajax请求的contentType设置为
多部分/表单数据
?是的,我设置了,但仍然不起作用。请参阅我的答案。您试过了吗?您是否将ajax请求的contentType设置为多部分/表单数据
?是的,我这样做了,但仍然不起作用。请参阅我的答案。您试过了吗?我将标题设置为headers:{'Accept':'Application/json'}。我也试过你建议的那个。它仍然不起作用。不知道是什么问题!!!我尝试了这个const formData=new formData()formData.append('song',this.songUpload)this.$http.post('/upload',formData,{headers:{'Accept':'application/json'}})。然后(res=>{console.log(res)})您可以设置多个标题。尝试添加内容类型标题。它很有效,就像您的代码一样…非常感谢@ManzurulI将头设置为头:{'Accept':'Application/json'}。我也试过你建议的那个。它仍然不起作用。不知道是什么问题!!!我尝试了这个const formData=new formData()formData.append('song',this.songUpload)this.$http.post('/upload',formData,{headers:{'Accept':'application/json'}})。然后(res=>{console.log(res)})您可以设置多个标题。尝试添加内容类型标题。它很有效,就像您的代码一样…非常感谢@ManzurulIt说{“所有者”:“eslint”,“code”:“no undef”,“severity”:8,“message”:“未定义“$”,“source”:“eslint”,“startinenumber”:418,“startColumn”:25,“endLineNumber”:418,“endColumn”:26}它说{“所有者”:“eslint”,“code”:“no undef”,“severity”:8,“message”:“未定义“$”,“source”:“eslint”,“StartInNumber”:418,“startColumn”:25,“endLineNumber”:418,“endColumn”:26}