上传/下载之前/之后的客户端(javascript / jQuery)文件操作

我只是在探讨这件事情,看了一会儿,画了一个空白。 我想看看这是否可能,因为到目前为止我看不到这样做的方法。

我想在上传之前在本地(使用现有库的浏览器)加密文件。 然后我需要检索它并在将文件呈现给用户之前解密它。 具体来说,我无法在存储之前将文件发送到服务器进行加密。 需要在客户端执行加密/解密。

这是我需要做的大致流程:

  1. 向用户显示查找文件小部件。
  2. 将文件读入客户端脚本(即在本地加载)
  3. 在客户端上加密它。
  4. 上传加密版本,刷新客户端并存储数据。

并且,相反:

  1. 下载存储的加密版本的文件。
  2. 在客户端解密它。
  3. 将解密的文件作为下载呈现给用户。

我一直在寻找客户端上的某种MIME编码(类似于电子邮件附件在以纯文本forms发送之前进行MIME编码的方式)。 我对jQuery方法特别感兴趣,因为这是我的应用程序的其余部分使用的,但是普通的旧javascript会很好。

非常感激地收到任何想法或指示。 这是我正在考虑假期的人。 所以,提前感谢任何评论。

由于浏览器的安全限制,使用普通的Javascript或JQuery无法做到这一点。

您最好的选择可能是采用基于Flash的开源上传组件,如SWFUpload (Flash可以更多或客户端),并在ActionScript中添加加密例程。 创建Java小程序或ActiveX控件也是有效的选项。

根据我们所讨论的加密类型,还可能存在用于该作业的现成组件。

你不能用JavaScript做到这一点。 当然,您可以简单地使用SSL(例如,通过HTTPS)。 所有这一切都很简单,经过充分测试。 否则,您将不得不使用非标准的东西,如Flash,Java或ActiveX。

接受的答案在这里已经过时了。 现在可以使用HTML5 File API和CryptoJS库之类的东西来实现 。

我无法与其他浏览器交谈 ,但我知道这应该可以在Firefox中使用文件操作api将文件从用户上传/下载到客户端代码(可能被操作的地方),以及标准的ajax从客户端代码上传/下载文件到服务器。