基本上,我只想通过 Javascript 或 jQuery 上传 CSV 文件。
我想尝试在不涉及任何 PHP 的情况下执行此操作。
我需要使用 HTML 上传表单,然后仅将其内容保存到多维数组或字符串中。
我不需要将上传的文件保存到服务器,我只需要将其内容保存到所述的字符串中。
我在网上看了很多,但一切都涉及 PHP。
这可能只使用 Javascript 或 jQuery 吗?
提前致谢
基本上,我只想通过 Javascript 或 jQuery 上传 CSV 文件。
我想尝试在不涉及任何 PHP 的情况下执行此操作。
我需要使用 HTML 上传表单,然后仅将其内容保存到多维数组或字符串中。
我不需要将上传的文件保存到服务器,我只需要将其内容保存到所述的字符串中。
我在网上看了很多,但一切都涉及 PHP。
这可能只使用 Javascript 或 jQuery 吗?
提前致谢
这使用了我在 GPLv3 许可下编写和发布的库: html5csv
下面的示例将 CSV 文件上传到浏览器中,该文件可作为数组数组使用。
该库支持各种块操作,例如制作表格、编辑、绘图、拟合、调用函数、保存在浏览器会话存储或本地存储中。
html
Choose a CSV file to load into the application:
<input id='foo' type='file'>
<hr />
js(需要 jQuery 和 html5csv.js)
CSV.begin('#foo').
table('output', {header:1, caption:'Uploaded CSV Data'}).
go();
在这里,go()
可以接受一个函数callback
(e,D)
,其中 e 将包含一个错误字符串或 null,而 D 是一个可能包含D.rows[0][0],...,D.rows[n-1][m-1]
数据n x m
矩阵的对象。第 0 行可能是标题行。
使用了异步性,实际上是在某些地方强制执行的。因此请注意,与 AJAX 一样,此代码将立即返回到下一行,并且最好将其阅读为设置工作流,以便在上一步准备好时执行该操作。
保存/恢复
您可以在工作流中的某个位置将数据保存到用户的浏览器 localStorage 对象.save('local/someKey').
中,此时存在于数组中的数据将存储在 HTML5 本地存储中(如果包含文档中的 LZString 库,甚至可能会被压缩),直到浏览器用户删除它。
然后在同一页面或同一网站上的另一个页面中,您可以使用CSV.begin('local/someKey')...
使用数据
您应该将要使用数据的任何代码放入一个函数中,该函数可以适合 html5csv 预期的回调call
或go
html5csv 站点上记录的回调。
jQuery CSV 插件可以使用客户端文件处理(不需要像 PHP 这样的服务器端脚本):
https://code.google.com/p/jquery-csv/#Client-Side_File_Handling
您可以使用允许您将 CSV 解析为数组的插件。
http://code.google.com/p/jquery-csv/
特征
要进行上传,您需要能够从光盘读取文件。您可以使用HTMl5 File API做到这一点。我确信有 jQuery 库可以简化这一点,但这是底层技术。
其他人发布了一个关于如何使用 jQuery 做到这一点的问题(和解决方案):html5's file api example with jquery?
在浏览器中访问文件后,请使用CSV 库来处理它。