Нужен Jquery для чтения файла CSV при загрузке страницы

0

Я нашел код для чтения CSV в таблицу через вход в файл поиска, но не могу понять, как заставить его автоматически считывать CSV файл при загрузке страницы.

Вот код CSV для таблицы из кода google.

  $(document).ready(function() {
if(isAPIAvailable()) {
  $('#files').bind('change', handleFileSelect);
}
});

function isAPIAvailable() {
// Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
  // Great success! All the File APIs are supported.
  return true;
} else {
  // source: File API availability - http://caniuse.com/#feat=fileapi
  // source: <output> availability - http://html5doctor.com/the-output-element/
  document.writeln('The HTML5 APIs used in this form are only available in the following browsers:<br />');
  // 6.0 File API & 13.0 <output>
  document.writeln(' - Google Chrome: 13.0 or later<br />');
  // 3.6 File API & 6.0 <output>
  document.writeln(' - Mozilla Firefox: 6.0 or later<br />');
  // 10.0 File API & 10.0 <output>
  document.writeln(' - Internet Explorer: Not supported (partial support expected in 10.0)<br />');
  // ? File API & 5.1 <output>
  document.writeln(' - Safari: Not supported<br />');
  // ? File API & 9.2 <output>
  document.writeln(' - Opera: Not supported');
  return false;
}
 }

 function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];

// read the file metadata
var output = ''
    output += '<span style="font-weight:bold;">' + escape(file.name) + '</span><br />\n';
    output += ' - FileType: ' + (file.type || 'n/a') + '<br />\n';
    output += ' - FileSize: ' + file.size + ' bytes<br />\n';
    output += ' - LastModified: ' + (file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() : 'n/a') + '<br />\n';

// read the file contents
printTable(file);

// post the results
$('#list').append(output);
 }

 function printTable(file) {
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
  var csv = event.target.result;
  var data = $.csv.toArrays(csv);
  var html = '';
  for(var row in data) {
    html += '<tr>\r\n';
    for(var item in data[row]) {
      html += '<td>' + data[row][item] + '</td>\r\n';
    }
    html += '</tr>\r\n';
  }
  $('#contents').html(html);
};
reader.onerror = function(){ alert('Unable to read ' + file.fileName); };
}
Теги:
csv

1 ответ

1

Я думаю, что вы не можете автоматически загружать локальные файлы из html из-за проблем безопасности в песочнице.
В противном случае вы можете представить, что хакер может легко создавать сайты для рыбалки, чтобы автоматически загружать локальные файлы на свой сервер и извлекать конфиденциальные данные.

  • 0
    Верно. Если файл CSV хранится на стороне клиента, вам придется заставить клиента инициировать чтение файла, например, перетаскивая их (загружая на сервер). Если файл CSV хранится на сервере, то это другая история.
  • 0
    И если бы файл CSV хранился на стороне сервера, это было бы возможно, или это все еще проблема безопасности?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню