مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

ارسال یه فایل باینتری به web api

چهارشنبه, 30 خرداد 1397 15:10

ارسال یه فایل باینتری به web api

سلام

من یه web api نوشتم و از طریق یه برنامه تحت ویندوز به اون وصل میشم و یک سری کار انجام میدم. در حالتی نیاز دارم که یک فایل رو به این web api ارسال کنم. ولی همیشه null دریافت میکنه.لطفا کمک کنید

web api

 [HttpGet]
        public bool insertMaliPic(string year, byte[] bfile, string docname, string sanad, string atf)
        {
            bool res;
            OracleConnection conn = new OracleConnection();
            conn.ConnectionString = "Data Source=orcl;User ID=omran;password=omran";
            conn.Open();

            OracleCommand oCmd = new OracleCommand();
            oCmd.Connection = conn;
            year = ("20" + (year + "01"));
            if (docname.Contains("Thumbs.db"))
            {
                return false;
            }

            string name = docname;
            while (name.Contains(@"\"))
            {
                int ind = name.IndexOf(@"\");
                name = name.Remove(0, (ind + 1));
            }

            try
            {
                if ((sanad == ""))
                {
                    sanad = " is null";
                }
                else
                {
                    sanad = ("='" + (sanad + "'"));
                }

                if ((atf == ""))
                {
                    atf = " is null";
                }
                else
                {
                    atf = ("='" + (atf + "'"));
                }

                oCmd.CommandText = ("select t.docid from tabdoc t where t.pparentid='"+ year + "'  and t.keyword1 "+ sanad + " and t.keyword2 "  + atf + "");
                string docid = oCmd.ExecuteScalar().ToString();
                string back;
                back = System.IO.Path.GetExtension(docname);
                if (((back.ToUpper() == ".TIFF") || ((back.ToUpper() == ".TIF") || ((back.ToUpper() == ".JPG") || (back.ToUpper() == ".JPEG")))))
                {
                    name = name.ToUpper();
                    name = name.Replace(".TIFF", "").Replace(".TIF", "").Replace(".JPG", "").Replace(".JPEG", "").ToString();
                    oCmd.CommandText = "insert into tabimage  ";
                    oCmd.CommandText += "  (imgid, docid, image, imagename)";
                    oCmd.CommandText = oCmd.CommandText + " values  (IMGESEQ.NEXTVAL," + docid + ", :image, '" + name + "')";
                    oCmd.Parameters.Add("image", OracleType.Blob);
                    oCmd.Parameters["image"].Value = bfile;
                    oCmd.ExecuteNonQuery();
                }
                else
                {
                    oCmd.CommandText = "insert into tabimage  ";
                    oCmd.CommandText += "  (imgid, docid, image, imagename,TTYPE)";
                    oCmd.CommandText = oCmd.CommandText + " values  (IMGESEQ.NEXTVAL," + docid + ", :image, '" + name + "','" + back + "')";
                    oCmd.Parameters.Add("image", OracleType.Blob);
                    oCmd.Parameters["image"].Value = bfile;
                    oCmd.ExecuteNonQuery();
                }

                res = true;
            }
            catch (Exception ex)
            {
                res = false;
            }

            return res;
        }

نحوه ارسال فایل و استفاده از  web api

byte[] bFile = null;
                        bFile = System.IO.File.ReadAllBytes(imgdt.Rows[i][0].ToString());
                        if ((status == 0))
                        {
                            if ((imgdt.Rows[i][0].ToString().Replace(dirdt.Rows[dirid][0].ToString(), "").ToUpper().Replace(" ", "").Contains(".TIF") || (imgdt.Rows[i][0].ToString().ToUpper().Replace(" ", "").Contains(".JPG") || (imgdt.Rows[i][0].ToString().ToUpper().Replace(" ", "").Contains(".JPEG") || (imgdt.Rows[i][0].ToString().ToUpper().Replace(" ", "").Contains(".TIFF") || imgdt.Rows[i][0].ToString().ToUpper().Replace(" ", "").Contains(".PDF"))))))
                            {
                                //insertMaliPic(sanaddate.PDateText.Substring(2, 2).ToString(), bFile, imgdt.Rows[i][0].ToString(), sanadno.Text, atfno.Text);
                                URI = "http://localhost:1808/api/Docs/insertMaliPic?year=" + sanaddate.Value.Substring(2, 2).ToString() + "&bfile=" + bFile + "&docname=" + imgdt.Rows[i][0].ToString() + "&sanad=" + sanadno.Text + "&atf=" + atfno.Text;
                                using (var client = new HttpClient())
                                {
                                    using (var response = await client.GetAsync(URI))
                                    {
                                        if (response.IsSuccessStatusCode)
                                        {
                                            var useripJsonString = await response.Content.ReadAsStringAsync();
                                            res = bool.Parse(JsonConvert.DeserializeObject(useripJsonString).ToString());
                                        }
                                    }
                                }
                            }

                        }

چهارشنبه, 30 خرداد 1397 16:33

کسی نمیتونه کمک کنه؟

چهارشنبه, 30 خرداد 1397 17:23

دوستان لطفا کمک کنید به شدت نیاز دارم به این موضوع

چهارشنبه, 30 خرداد 1397 17:47

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید