2013-05-26 18 views
35

Sto scrivendo un'estensione Chrome che fa il seguente:"Uffa" quando uri dati è troppo grande

  1. scarica un file da un sito web per memoria utilizzando XMLHttpRequest
  2. aggiunge i dati supplementari al file e quindi base64 codifica il risultato alla variabile total_encoded_data
  3. Offre i dati all'utente utilizzando <a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>. Dove total_encoded_data viene aggiunto a href utilizzando jQuery.

ho trovato, attraverso un manuale di ricerca binaria, che se la dimensione del total_encoded_data è maggiore di 2097100 caratteri, quindi mi metterò un messaggio di Uffa quando clicco il link. Se la dimensione è inferiore, posso scaricare come previsto.

Oltre a testare il file, ho anche utilizzato atoi per garantire che la codifica base64 sia valida e funzioni senza errori.

Il Aw, messaggi Snap non producono alcun segnalazioni di crash in chrome://crashes né alcuna uscita inattesa del chrome_debug.log

Come evitare un messaggio di Uffa quando serve un URI dati in cui le Base64 lunghezza della stringa è maggiore di 2097100?

risposta

Problemi correlati