Как отправить данные blob-файла zip-архива со стороны клиента на сторону сервера (mvc Api)? - PullRequest
0 голосов
/ 04 августа 2020

Я хотел передать данные большого двоичного объекта со стороны клиента на сторону сервера. Мои данные Blob: "size: 57177 type:" application / zip " proto : Blob"

Я пробовал эти строки кода

                                var base64data;
                                var reader = new FileReader();
                               reader.readAsDataURL(b);                           //convert blob into base64
                                 reader.onloadend = function () {
                                      var Filedata = new Object();
                                       Filedata.Filename = c;
                                       Filedata.MID = "716274527";
                                       Filedata.theblob = base64data;
                                     $.ajax({
                                         url: 'http://localhost:55490/api/BCFReceiver/receiveBCFFile',
                                        type: 'Post',
                                        dataType: 'binary',
                                        contentType: 'application/json',
                                       // processData: false,
                                         data: Filedata  ,
                                        
                                        success: function (data, textStatus, xhr) {
                                            console.log(data);
                                        },
                                        error: function (xhr, textStatus, errorThrown) {
                                            console.log('Error in Operation');
                                        }
                                    });

И мой API Контроллер:

   public class Filedata
        {
            public string Filename { get; set; }
            // public string MID { get; set; }
            public string theblob { get; set; }
        }
        // GET: FileReceive
        [EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
        [System.Web.Http.HttpPost]
        [System.Web.Http.Route("api/BCFReceiver/receiveBCFFile")]
        public HttpResponseMessage receiveBCFFile(Filedata filedata)
        {

            String path = HttpContext.Current.Server.MapPath("~/ImageStorage"); //Path

            //Check if directory exist
            if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path); //Create directory if it doesn't exist
            }
            var filename = filedata.Filename;
            var basestring = filedata.theblob;

            //set the image path
            string imgPath = Path.Combine(path, filename);

            byte[] decodedByte = Convert.FromBase64String(basestring);

            File.WriteAllBytes(imgPath, decodedByte);

            return Request.CreateResponse(HttpStatusCode.OK, "File saved");
        }
     }

Я просто хочу передать свои данные большого двоичного объекта на сторону сервера с преобразованием данных в любой другой формат или без него. Здесь reader.readAsDataURL (b); b содержит данные blob, а тип данных - application / zip.

...