Heim > Fragen und Antworten > Hauptteil
Frage:
1. Bilder können zum Hochladen in Base64 konvertiert werden, aber warum können Excel, PDF usw. nicht in Base64 konvertiert werden?
2. Laden Sie Dateien über XMLHttpRequest hoch und fügen Sie sie in FormData ein, aber wie binde ich Tags an die Dateien? Woher weiß ich beispielsweise, dass diese Datei meinem aktuellen Benutzer gehört?
3. Hat jemand eine gute Lösung zum Hochladen von JS-Dateien?
三叔2017-07-05 11:10:28
在现代浏览器下,可使用 html5
相关API实现。我暂时想到这几个 Blob FileReader btoa 具体的就需要你去查文档了
FormData
可以用append
添加额外的字段。 这里你需要放开思路,一个字段最终代表着传递到后台的一个参数,这个参数其实是很抽象的一个概念,具体取决与你前台跟后台的约定。
举个例子,我可以在最后要发送请求的时候构造一个额外对象(它的字段取值要跟后台商量),添加到FormData
中,发送到服务端。
var meta = {
name:"",
time:"",
data:[]
}
formData.append("meta", JSON.stringify(meta));
服务端最后再将这个字段反序列化成对象,取得里面的值。
最后,js文件上传是HTML5后提供的功能所以有兼容性的问题,说白了也就是那几个新增API的使用,去 MDN上把相关文档、demo 看一下就差不多了
扔个三星炸死你2017-07-05 11:10:28
1.pdf应该是可以转base64的,excel没测试过,但excel可以转为Blob类型,理论上也应该可以转为base6。
2.FormData再加一个参数作为文件的唯一标记,一起传到后端就行了。