webservice 以流的形式上传图片

[System.Web.Services.Protocols.SoapHeader("myHeader")]
        [WebMethod(Description = "上传文件到远程服务器.")]
        public string UploadFile(byte[] fileBytes, string type,string so_no)
        {
            try
            {
                string fileName = string.Empty;
                if (type.ToLower() == "jpg" || type.ToLower() == "gif" || type.ToLower() == "bmp" || type.ToLower() == "png" || type.ToLower() == "jpeg")
                {
                     fileName = Guid.NewGuid().ToString() + "." + type;
                }
                MemoryStream memoryStream = new MemoryStream(fileBytes); //1.定义并实例化一个内存流,以存放提交上来的字节数组。
                string strName = @"D:\程序开发\三星\WebApplication1\WebApplication1\img\" + fileName;
                FileStream fileUpload = new FileStream(strName, FileMode.Create); ///2.定义实际文件对象,保存上载的文件。
                memoryStream.WriteTo(fileUpload); ///3.把内存流里的数据写入物理文件
                memoryStream.Close();
                fileUpload.Close();
                fileUpload = null;
                memoryStream = null;
                add(strName, fileName, type,so_no);
                return "文件已经上传成功";
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
        private void add(string path, string filename, string type,string so_no)
        {
            FileStream fs = File.OpenRead(path);
            byte[] content = new byte[fs.Length];
            fs.Read(content, 0, content.Length);
            fs.Close();
            string path1 = @"img\" + filename;
            string sql = @"insert into image(id,so_no,filename,address,time) values(seq_temp.NEXTVAL,:so_no,:filename,:address,sysdate )";
            OracleConnection connection = new OracleConnection();
            connection.ConnectionString = "Data Source=SAMSUNG;User ID=samsung;Password=samsung";//此处设置链接字符串
            OracleCommand command = new OracleCommand(sql, connection);

            command.Parameters.Add(":so_no", OracleType.VarChar, 100).Value = so_no;
            command.Parameters.Add(":filename", OracleType.VarChar, 100).Value = filename;
            command.Parameters.Add(":address", OracleType.VarChar, 200).Value = path1;

            connection.Open();

            int str1 = command.ExecuteNonQuery();
            connection.Close();
            command.Dispose();
        }

上面是webservice代码

 FileInfo imgFile = new FileInfo(@"D:\test1.jpg");
            byte[] imgByte = new byte[imgFile.Length];//1.初始化用于存放图片的字节数组
            System.IO.FileStream imgStream = imgFile.OpenRead();//2.初始化读取图片内容的文件流
            imgStream.Read(imgByte, 0, Convert.ToInt32(imgFile.Length));//3.将图片内容通过文件流读取到字节数组  

上面是测试代码

时间: 2024-10-12 09:03:00

webservice 以流的形式上传图片的相关文章

Java下载文件(流的形式)

1 @RequestMapping("download") 2 @ResponseBody 3 public void download(HttpServletResponse response, Integer userId, String fileUrl) { 4 try { 5 File file=new File(fileUrl); 6 String filename=file.getName(); 7 // 以流的形式下载文件. 8 InputStream fis = new

将zip文件以流的形式输出到页面

//将文件以流的形式输出//获取到zip文件的地址 String zipPath = businessMessageInter.downlodImgs(bussNo,imageIndexList,userLoginOut); HttpServletResponse response = SessionUtil.getResponse();response.setCharacterEncoding("UTF-8");response.setContentType("text/h

iOS Post上传图片, 文件流的形式

最近看到群里很多小伙伴有问上传图片服务器收不到, 解析不了.  可以说就一个属性  ContentType , 不论你使用第三方的AFN, 还是自己封装NSURLSesstion. 都需要把ContentType 设置和后台的解析方式一样(可能术语不是很标准, 总之就这个意思哈,谅解) 下面贴一段AFN的上传图片代码吧, 亲测有效, 不过可能只是针对我的服务器.  只要和后台同学沟通好就行了 //此body是向后台传的参数, 因为是上传图片, 所以只给个图片名就够了, 这个和后台去问 NSDic

AFNetworking实现表单(multipart)形式上传图片

最近遇到个问题,就是上传图片到服务器,后台说用表单形式... 由于没弄过这种上传,所以搜了大堆资料,但也没解决问题. 最后通过请教一位大神才得以解决这个简单的问题... 现在将此方法做个笔记... <form action="http://xxxxxx?AppId=6&AppKey=409eb153a6ee96e064ba8d883xxxxx&Ac=PhotoUpload&Uid=5" method="post" enctype=&qu

阿里云附件文件流的形式上传、下载

1.View附件上传 @using (Html.BeginForm("StartUpLoad", "ReferenceDocument", new {id = ViewBag.Id}, FormMethod.Post, new {enctype = "multipart/form-data"})) { <input type="file" name="filedata" id="fileUp

使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)

先是做普通的,存储我们本地的图片,将它转化为二进制流存储到数据库对应的表中. 代码如下: string path = "../../A.jpg"; FileStream fs = new FileStream(path, FileMode.Open); int streamLength = (int)fs.Length; //获取文件流的长度. byte[] image = new byte[streamLength]; //声明字节数组,用于保存图片文件 fs.Read(image,

将字符串以用二进制流的形式读入XML文件

其实将字符串写入XML文件本身并不复杂,这里只是写一些需要注意的地方,特别是编码格式,这里需要的是XML默认的编码方式是UTF-8,在对字符串进行编码的时候一定要注意, string strReceiveData = srs.ReceiveData(); byte[] data = Encoding.UTF8.GetBytes(strReceiveData); //将当前的字符串保存到XML文件中 System.IO.FileStream stream = new FileStream(Syst

Java生成二进制文件与Postman以二进制流的形式发送请求

业务描述: 模拟终端(智能家居)发送HTTP POST请求,请求参数为二进制流:而且,二进制流是加密后的数据,因此调试分两步: 1.Java代码生成加密后数据,并保存为二进制流文件 (电脑上的图片就是二进制流文件,只不过我们打开的时候,借助于电脑软件渲染为图片) 上代码片段: 1 byte[] oneshotBytes = reqParms.getBytes(); 2 log.info("length----->"+oneshotBytes.length); 3 //FileWr

返回流的形式下载文件

//下载文件 private void Down(HttpContext context) { string filePath = context.Request["url"]; if (!string.IsNullOrEmpty(filePath)) { string customFileName = DateTime.Now.ToString("yyyyMMddHHmmss");//客户端保存的文件名 using (FileStream fileStream =