在下面的用例中我试图完成只有步骤3到目前为止还没有工作,我正在Joomla 3.4环境中工作,因为我在这里处理模块。
form.submit();
中完成时称为一些细节:
发送未加密的文件效果很好,所以我想我可以添加加密文件,但显然它不起作用。表单提交原始内容,而不是添加的文件。我已经搜索了一些解决方案,这段代码片段是我研究的结果:
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 /隐藏输入字段来进行文件加密和发送。到目前为止,我找不到合适的解决方案。
答案 0 :(得分:1)
也许你可以尝试,一旦文件被pgp加密,在base64中编码数据,然后通过JavaScript编辑DOM,将结果字符串放入输入类型=隐藏。
处理提交的表单的脚本可以以简单的方式将文件附加到邮件,因为邮件附件是base64编码的。它只需要读取隐藏输入字段的值。
如果你想要一些示例Javascript代码,请告诉我,我有一些代码片段处理这个。
- >我想知道和Mave一样的东西,但我想如果你想要这样的话有一些原因吗?一种解决方法可能是在表单与表单之间创建一个新页面,并告诉您邮件已被发送(您可以使用该文件执行所需操作,一个服务器端,并显示它可供下载到只是未加密上传的用户。)
另一件事,要在JavaScript中处理base64编码数据,您可以使用: - btoa()方法编码为base64, - atob()方法来反转它。