Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Problem beim Hochladen von JS-Dateien

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?

淡淡烟草味淡淡烟草味2663 Tage vor945

Antworte allen(4)Ich werde antworten

  • 三叔

    三叔2017-07-05 11:10:28

    1. 在现代浏览器下,可使用 html5 相关API实现。我暂时想到这几个 Blob FileReader btoa 具体的就需要你去查文档了

    2. FormData可以用append添加额外的字段。 这里你需要放开思路,一个字段最终代表着传递到后台的一个参数,这个参数其实是很抽象的一个概念,具体取决与你前台跟后台的约定。
      举个例子,我可以在最后要发送请求的时候构造一个额外对象(它的字段取值要跟后台商量),添加到FormData中,发送到服务端。

         var meta = {
                name:"",
                time:"",
                data:[]
            }
        formData.append("meta", JSON.stringify(meta));

    服务端最后再将这个字段反序列化成对象,取得里面的值。

    最后,js文件上传是HTML5后提供的功能所以有兼容性的问题,说白了也就是那几个新增API的使用,去 MDN上把相关文档、demo 看一下就差不多了

    Antwort
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-07-05 11:10:28

    1.pdf应该是可以转base64的,excel没测试过,但excel可以转为Blob类型,理论上也应该可以转为base6。

    2.FormData再加一个参数作为文件的唯一标记,一起传到后端就行了。

    Antwort
    0
  • typecho

    typecho2017-07-05 11:10:28

    第1点我不太清楚,第2点需要通过session,靠服务端

    Antwort
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-07-05 11:10:28

    第二点可以多给formdata增加一个input字段

    Antwort
    0
  • StornierenAntwort