我有一个表示为byte []的excel文档,我想将其作为附件发送到电子邮件中.
我在构建附件时遇到了一些麻烦.
我可以创建一个具有以下构造函数的Attachment:
(Stream contentStream, ContentType contentType)
(Stream contentStream, string name)
(Stream contentStream, string name, string mediaType)
Run Code Online (Sandbox Code Playgroud)
我的想法是从byte []创建一个MemoryStream并将其传递给创建附件的方法.
不幸的是,我看不到从MemoryStream获取预期文件名和内容类型的方法,我也看不到如何提供正确的内容类型.有纯文本,Pdf,Rtf等选项,但我没有看到立即跳出来作为我应该用于Excel文档的那个.
我能找到的最接近的是MediaTypeNames.Application.Octet,其中说明:
Octet成员指定附件包含通用二进制数据.
但是,即使这是一个使用的,除非它可以作为Stream的属性传递,那么我的发送电子邮件的方法只能发送一个byte []作为Excel文档...
是否有其他类型的流可以使用?或者我是否必须创建我自己的Stream类型,其中包含我需要的详细信息.
当然有人在那里做过这件事,当然微软会想到这个水平......
任何帮助将非常感激.
更新: 请不要投票使用将文件名作为字符串的构造函数的任何答案.我真的需要帮助使用带有Stream的那些......我想避免将文件写入磁盘,通过电子邮件发送,然后立即将其删除.由于有一种方法可以让我这样做,我想尽可能使用那个.
解决方案更新
康拉德设法找到了我要找的东西!谢谢堆人!
我只是记录建议的解决方案,以防万一在提供的链接上的内容发生了什么.
这个解决方案可以归功于www.systemnetmail.com
static void AttachmentFromStream()
{
//create the mail message
MailMessage mail = new MailMessage();
//set the addresses
mail.From = new MailAddress("me@mycompany.com");
mail.To.Add("you@yourcompany.com");
//set the content
mail.Subject = "This is an email";
mail.Body = "this content is in the body";
//Get some binary data
byte[] …Run Code Online (Sandbox Code Playgroud) 在任何地方都有Java 7的二进制版本(使用Mac/BSD端口项目)吗?一些博客(例如,在Mac OS X上构建Java 7)有详细的说明从源代码构建jdk,但我希望有人可以下载它的二进制文件.
这些说明的问题在于让所有版本号都正确是非常烦人的,而轻微的变化可能会导致浪费时间.
假设我想找到二进制当量为13的二位(二进制:1101).它应该返回0.
假设我们给出了一个零和一的mxn网格,并希望转换网格,以便最大行数仅由1组成.我们允许在网格上执行的唯一操作是选择一些列并翻转该列中的所有零和一个.我们还给出了一些整数k,并且必须执行恰好 k列翻转.给定网格和k的值,我们如何确定要翻转哪些列以最大化所有列的行数?
我认为需要做一些动态的事情,但我无法得到一个好的答案.有人可以帮忙吗?
我正在使用Ruby 1.9打开几个文件并将它们复制到一个存档中.现在有一些二进制文件,但有些文件不是.由于Ruby 1.9不能自动打开二进制文件作为二进制文件,有没有办法自动打开它们?(所以".class"是二进制的,".txt"不是)
我有一个二进制文件,其中包含一个平面位置的记录.每条记录看起来像:
0x00: Time, float32
0x04: X, float32 // X axis position
0x08: Y, float32 // Y axis position
0x0C: Elevation, float32
0x10: float32*4 = Quaternion (x,y,z axis and w scalar)
0x20: Distance, float32 (unused)
Run Code Online (Sandbox Code Playgroud)
所以每条记录长32个字节.
我想得到一个Numpy阵列.
在偏移1859处,存在无符号的int 32(4字节),其指示阵列的元素的数量.在我的情况下12019.
我不关心(现在)标题数据(偏移1859之前)
数组仅从偏移1863(= 1859 + 4)开始.
我定义了自己的Numpy dtype之类的
dtype = np.dtype([
("time", np.float32),
("PosX", np.float32),
("PosY", np.float32),
("Alt", np.float32),
("Qx", np.float32),
("Qy", np.float32),
("Qz", np.float32),
("Qw", np.float32),
("dist", np.float32),
])
Run Code Online (Sandbox Code Playgroud)
我正在阅读文件使用fromfile:
a_bytes = np.fromfile(filename, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何参数提供fromfile传递偏移量.
我正在为一些生成Excel文件(二进制文件)的代码编写JUnit测试.我有另一个包含我的预期输出的Excel文件.将实际文件与预期文件进行比较的最简单方法是什么?
当然我可以自己编写代码,但我想知道在可信第三方库(例如Spring或Apache Commons)中是否存在已经执行此操作的现有方法.
我有四个整数{ a,b,c,d},可以有值的范围如下:
a - {0或1}(1位)
b - {0或1}(1位)
c - {0,1,2,...,7}(3位)
d - {0,1,2,...,7}(3位)
首先,我想将它们打包成一个字节,然后可以写入二进制文件.后来,我想解开一个字节,并从中获取到窗体(元组a,b,c,d).
我知道如何在python中读取/写入二进制文件的字节.但是如何进行打包/拆包?
有谁知道如何在Java中添加2个二进制数,以二进制形式输入?
例如,1010 + 10 = 1100.