【发布时间】:2015-06-12 07:42:17
【问题描述】:
在以下用例中,我只尝试完成第 3 步,到目前为止还没有工作,并且我正在 Joomla 3.4 环境中工作,因为我正在这里处理模块。
- 我有一个 html 表单要求一些输入和文件上传。
- 我用 JavaScript 处理这个文件到 pgp 来加密它(用这个:https://keybase.io/kbpgp)
- 现在我想将表单中的原始文件替换为 加密的,或者至少将加密的添加到表单数据中。 到目前为止这不起作用,我该怎么做?
- 在 JavaScript 部分完成所有操作后,
form.submit();被调用 - 发送一封电子邮件,格式为纯文本加密为正文,文件应添加为加密附件。
一些细节:
发送未加密的文件效果很好,所以我想我可以添加加密的,但显然它不起作用。该表单提交原始内容,而没有关于添加的文件。我已经搜索了一些解决方案,这段代码 sn-p 是我研究的结果:
var data = new FormData();
data.append('upload_file' , result_buffer);
var xhr = new XMLHttpRequest();
xhr.open( 'POST', '', true );
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.send(data);
var form = document.getElementById('formencryptmessage');
form.submit();
upload_file是原始未加密文件的表单输入;无论我做什么,$_POST 请求都会保留原始文件; result_buffer 是一个包含文件内容的二进制缓冲区;最后,formencryptmessage 是表单 ID 和名称。
编辑
带有代码的 git repo 在这里:https://github.com/JamborJan/joomlaencryptedcontact
我们正在谈论这个:https://github.com/JamborJan/joomlaencryptedcontact/blob/master/tmpl/default.php
我的主要意图是仅使用浏览器会话/RAM/隐藏输入字段来进行文件加密和发送。到目前为止我还没有找到合适的解决方案。
【问题讨论】:
-
可能是个奇怪的问题,但是为什么不把文件发送到处理
$_POST的页面后加密呢?
标签: javascript php forms joomla3.0