我想将Tiff图像传递给Web服务,web服务将Tiff图像作为参数,我必须对Tiff图像进行一些操作。
请建议我将Tiff Image作为参数传递给网络服务的好方法。
提前致谢。
答案 0 :(得分:0)
enctype="multipart/form-data"
。HttpFileCollection files = HttpContext.Current.Request.Files;
(表单的action
属性)以访问上传的文件:HttpPostedFile file = files["id_of_field_with_filename"];
。这里“id_of_field_with_filename”是包含文件名的HTML表单的<input>
标记的id属性。file.SaveAs(someDirectory + Path.GetFileName(file.FileName));
请注意,在此解决方案中,Web服务的方法(“操作”)没有任何参数。也可以使用HTML5 File API加载图像,使用JavaScript将其转换为base64,并通过AJAX POST将此字符串上传到Web服务。在这种情况下,Web服务的方法需要有一个字符串参数来接收图像的base64编码字节。
答案 1 :(得分:0)
Web服务可以接受byte[]
或Stream
作为输入参数。
这是一个如何将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。
答案 2 :(得分:0)
我会按照以下方式进行:
//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;