我想将 Tiff 图像传递给 Web 服务,Web 服务将 Tiff 图像作为参数,我必须对 Tiff 图像进行一些操作。
请建议我将 Tiff Image 作为参数传递给 Web 服务的好方法。
提前致谢。
我想将 Tiff 图像传递给 Web 服务,Web 服务将 Tiff 图像作为参数,我必须对 Tiff 图像进行一些操作。
请建议我将 Tiff Image 作为参数传递给 Web 服务的好方法。
提前致谢。
我会这样做:
//get image from file or smth.
Image img = Image.FromFile(filename);
byte[] bytes;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, ImageFormat.Tiff);
bytes = ms.ToArray();
}
string ret = Convert.ToBase64String(bytes);
return ret;
Web 服务可以接受 abyte[]
或 aStream
作为输入参数。
这是一个如何将 Tiff 文件作为 byte[] 传递的示例:
byte[] fileBlob = new byte[FileUploadControl1.PostedFile.InputStream.Length];
FileUploadControl1.PostedFile.InputStream.Read(fileBlob, 0, (int)FileUploadControl1.PostedFile.InputStream.Length);
svc.UploadFile(fileBlob);
此示例基于 C# ASP.NET。
enctype="multipart/form-data"
.HttpFileCollection files = HttpContext.Current.Request.Files;
在 Web 服务(表单的属性)中使用action
以获取对上传文件的访问权限:HttpPostedFile file = files["id_of_field_with_filename"];
. <input>
这里的“id_of_field_with_filename”是包含文件名的 HTML 表单标签的 id 属性。file.SaveAs(someDirectory + Path.GetFileName(file.FileName));
请注意,在此解决方案中,Web 服务的方法(“操作”)没有任何参数。也可以使用 HTML5 File API 加载图像,使用 JavaScript 将其转换为 base64,然后通过 AJAX POST 将此字符串上传到 Web 服务。在这种情况下,Web 服务的方法需要有一个字符串参数来接收图像的 base64 编码字节。