你是aurelia js的新手,我需要将文件上传到服务器,使用autrelia js,materializecss和httpClient.fetch进行api调用。我不知道如何将文件发送到服务器。
观点:
<input type="file" files.bind="selectedFiles" change.delegate="onSelectFile($event)">
型号:
onSelectFile(e)
{
var myurl = 'http://cdn.dmsapp.tk/file?authToken=bLNYMtfbHntfloXBuGlSPueilaHtZx&type=jpg&name=sibi.jpg&userId=7&organizationId=1&sourceType=USER_UPLOADS';
this.httpValueConverter.call_http(myurl,'POST',this.selectedFiles[],'fileupload',file_upload)
.then(data => {
console.log(data);
if(data.meta && data.meta.statusCode == 200) {
// this.index_lists = data.index.list;
}
}); }
httpservice:
return this.httpClient.fetch('http://api.dmsapp.tk/'+url,
{
method: method,
body : json(myPostData),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'authorization': this.authorization}})
.then(response => response.json());
寻找解决方案。
答案 0 :(得分:0)
如果它是一个文件而您正在尝试上传特定的媒体类型, 标题&#39;内容类型&#39;:&#39; application / x-www-form-urlencoded&#39;对我来说似乎不对。请在此处查看相应的媒体类型:
http://www.iana.org/assignments/media-types/media-types.xhtml
此外,您将数据序列化为JSON,如果您的数据是二进制文件,则需要将其更改为字节数组。
您可以在这里找到一些有用的信息:
http://www.petermorlion.com/file-upload-with-aurelia/
您还在网址和标题中设置了代码,我建议您只在标题中设置代码。