我正在编写一个客户端应用程序,它应该读取文件,转换其内容,然后导出结果。为了做到这一点,我决定重新构建框架。
现在,我刚刚开始考虑重新构建和cloujurescipt本身,并获得了以下工作:
在我的视图函数中的某个地方,每当通过一个简单的HTML输入选择一个新文件时,我都会发送这个消息。
[:input {:class "file-input" :type "file"
:on-change #(re-frame/dispatch
[::events/file-name-change (-> % .-target .-value)])}]我得到的是类似于C:\fakepath\file-name.txt的东西,fakepath实际上是它的一部分。
我的事件处理程序目前只拆分名称并保存我上面输入的文件名以显示选定的文件。
(re-frame/reg-event-db
::file-name-change
(fn [db [_ new-name]]
(assoc db :file-name (last (split new-name #"\\"))))) 此外,我还想读入该文件,以便稍后在本地处理它。假设我只是更改了我的on-change操作和事件处理程序来做这件事,我该怎么做呢?
我找了一段时间,但几乎一无所获。我不想为每一个新的问题引入新的依赖。
发布于 2019-10-31 10:32:46
我假设你想在客户端使用HTML5 API来做所有的事情(例如。没有实际上传到服务器)。
来自MDN的这篇指南可能会派上用场:https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications
似乎可以订阅用户选择文件时触发的事件,然后就可以通过File API:https://developer.mozilla.org/en-US/docs/Web/API/File获取该文件的列表,查看文件内容
在本例中,您需要在某个地方保存对事件中的FileList对象的引用,并在以后重用它。
https://stackoverflow.com/questions/58628360
复制相似问题