Вот несколько битов кода, которые я использовал для отображения клиента изображения предварительного просмотра при выборе файла. Вы должны использовать это как отправную точку, чтобы делать что-то еще с данными файла. Определение того, зависит ли ваш csv от вас.
Очевидное предостережение:
Вам по-прежнему необходимо проверить серверную сторону. Любой может изменить ваш javascript для вашего клиента, чтобы притвориться плохим файлом.
Еще один оговорка: Я уверен, что вы можете иметь скрытые символы запятой в действительном файле csv. Я думаю, что экранирующий символ может отличаться по некоторым реализациям тоже ...
// Fired when the user chooses a file in the OS dialog box
// They will have clicked <input id="fileId" type="file">
document.getElementById('fileId').onchange = function (evt) {
if(!evt.target.files || evt.target.files.length === 0){
console.log('No files selected');
return;
}
var uploadTitle = evt2.target.files[0].name;
var uploadSize = evt2.target.files[0].size;
var uploadType = evt2.target.files[0].type;
// To manipulate the file you set a callback for the whole contents:
var FR = new FileReader();
// I've only used this readAsDataURL which will encode the file like data:image/gif;base64,R0lGODl...
// I'm sure there's a similar call for plaintext
FR.readAsDataURL($('#file')[0].files[0]);
FR.onload = function(evt2){
var evtData = {
filesEvent: evt,
}
var uploadData = evt2.result
console.log(uploadTitle, uploadSize, uploadType, uploadData);
}
}
Это должно стать хорошей отправной точкой .. http://stackoverflow.com/questions/2513642/javascript-csv-validation – user2879041
просто разобрать в JS и посмотреть, есть ли у него 2+ строки одного и того же количества столбцов – dandavis
Совет по безопасности: никогда не доверять данным со стороны клиента. Не забудьте также проверить, что содержимое файла - это текст на стороне сервера. –