有没有办法将在浏览器中创建为blob的文件附加到电子邮件中

时间:2013-10-12 13:45:31

标签: javascript html5 browser cross-browser

我知道您可以通过在网址中嵌入直接路径将本地文件附加到电子邮件中。有没有办法用浏览器中创建的文件作为blob做类似的事情?这是作为我正在运行的一些JavaScript代码的一部分创建的。

谢谢!

1 个答案:

答案 0 :(得分:3)

我假设您正在使用 XMLHttpRequest 来提交数据。而不是简单地 POSTing 电子邮件正文,您可以创建一个{em> POST 到服务器的FormData

假设您要上传名为myBlob的文件,以及其他一些与电子邮件相关的字符串,您可以这样做

var data = new FormData();
//           name       , value     [,  filename       ]
data.append('attachment', myBlob     , 'myFileName.txt');
data.append('to'        , emailText                    );
data.append('subject'   , subjectText                  );
data.append('body'      , bodyText                     );

然后在 XMLHttpRequest 的最后一步(比如名为xhr),您发送data

xhr.send(data);

现在您可以像往常一样在服务器端代码中访问这些代码(例如在php中)$_POST

网络浏览器支持为IE10+