我正在使用EmberJS编写一个单页应用程序,并且需要上传一些文件。
我写了一个特殊的视图,该视图包装了文件输入字段并提取了所选的第一个文件。这使我可以将File
-Object绑定到模型属性。
现在我必须选择。
我可以编写一个特殊的文件转换,将File
-Object序列化为base64,然后简单地PUT / POST。
或者,我可以拦截RESTAdapter
方法createRecord
和updateRecord
来检查每个模型的File
对象,并将PUT / POST请求切换到multipart/form-data
并在FormData
的帮助下发送
这些指示之一是否构成重大问题?
最佳答案
我必须对正在开发的Restful API进行同样的评估。在我看来,最理想的方法是仅将RESTAdapter与base64编码的数据一起使用。
话虽如此,我必须使用multipart / form-data方法,因为在对base64编码文件数据时,数据传输要高30%。由于我的API必须接受大文件(超过100MB),因此我选择了API的POST方法来接收多部分表单数据,其中文件和json数据是POST变量之一。
因此,除非您需要像我这样上传大型文件,否则我建议始终坚持使用REST方法。