我正在使用EmberJS编写一个单页应用程序,并且需要上传一些文件。

我写了一个特殊的视图,该视图包装了文件输入字段并提取了所选的第一个文件。这使我可以将File -Object绑定到模型属性。

现在我必须选择。

我可以编写一个特殊的文件转换,将File -Object序列化为base64,然后简单地PUT / POST。

或者,我可以拦截RESTAdapter方法createRecordupdateRecord来检查每个模型的File对象,并将PUT / POST请求切换到multipart/form-data并在FormData的帮助下发送

这些指示之一是否构成重大问题?

最佳答案

我必须对正在开发的Restful API进行同样的评估。在我看来,最理想的方法是仅将RESTAdapter与base64编码的数据一起使用。

话虽如此,我必须使用multipart / form-data方法,因为在对base64编码文件数据时,数据传输要高30%。由于我的API必须接受大文件(超过100MB),因此我选择了API的POST方法来接收多部分表单数据,其中文件和json数据是POST变量之一。

因此,除非您需要像我这样上传大型文件,否则我建议始终坚持使用REST方法。

10-07 19:05
查看更多