Я новичок в d3.js, поэтому я знаю, что это может показаться глупым вопросом для некоторых, поэтому, пожалуйста, потерпите меня. Я пытаюсь проанализировать CSV-файл, который загружает пользователь, и распечатать его вывод в консоли. Я могу разобрать CSV-файл, когда указываю абсолютный путь к CSV-файлу, но когда я пытаюсь сделать то же самое с функцией загрузки файла, я не получаю никакого вывода в консоли.
Рабочий код Javascript..
var dataset = [];
d3.csv("sample.csv", function(data) {
dataset = data.map(function(d) { return [ d["Title"], d["Category"], d["ASIN/ISBN"], d["Item Total"] ]; });
console.log(dataset[0]);
console.log(dataset.length);
});
Вывод в консоль...
["Men's Brooks Ghost 8 Running Shoe Black/High Risk Red/Silver Size 11.5 M US", "Shoes", "B00QH1KYV6", "$120.00 "]
8
Новый HTML-код..
<input type="file" id="csvfile" name="uploadCSV"/>
<br/>
<button onclick="howdy()">submit</button>
Измененный код Javascript (не работает)..
var myfile = $("#csvfile").prop('files')[0];
var reader = new FileReader();
reader.onload = function(e) {
var text = reader.result;
}
reader.readAsDataURL(myfile);
var dataset = [];
d3.csv(reader.result , function(data) {
dataset = data.map(function(d) { return [ d["Title"], d["Category"], d["ASIN/ISBN"], d["Item Total"] ]; });
console.log(dataset[0]);
console.log(dataset.length);
})
Поскольку официальной документации о том, как обрабатывать загруженный пользователем файл CSV, не было, я не могу понять, где я ошибаюсь. Есть ли способ использовать программу чтения файлов HTML5 ?? Пожалуйста помоги..
$("#csvfile")[0].files
не дает вам содержимого файла. Сначала вам нужно загрузить файл на сервер и вернуть URL-адрес загруженного файла. Затем вам нужно обновить код на стороне клиента (javascript), чтобы использовать URL-адрес загруженного файла, а не только содержимое ввода загрузки файла. - person Tjaart van der Walt   schedule 18.03.2016text
, но никогда ее не использовали. Возможно, вам придется вызватьd3.csv()
внутри обратного вызова, когда содержимое файла будет доступно. - person Tjaart van der Walt   schedule 18.03.2016