Quantcast
Channel: Internet Explorer Web Development forum
Viewing all articles
Browse latest Browse all 3527

Unable to upload the files on server by using AJAX on IE 11 on update version 11.0.21 by using the https

$
0
0

Unable to upload the files on server by using AJAX on IE 11 on update version 11.0.21

This problem only occurs on that version on https only and for the rest it works fine. In this also it sometimes gets uploaded successfully.

Below is the client side code for uploading the image :

function Upload(fd, url, obj, mp) {
        var xhr = new XMLHttpRequest();
        var ul = {};
        xhr.upload.addEventListener("loadstart", function () {
            ul.percent = 0;
            ul.progress = InitProgress(obj, mp);
        }, false);
        xhr.upload.addEventListener("progress", function (e) {
            var percent = 0;
            var position = e.loaded || e.position;
            var total = e.total;
            if (e.lengthComputable) {
                percent = Math.floor(position / total * 100);
            }
            percent = percent > 100 ? 98 : percent;
            ul.percent = percent > 10 ? percent - 5 : percent;
            ul.progress.Set(ul.percent);
        }, false);
        xhr.upload.addEventListener("load", function (e) {
            ul.percent = 95;
            ul.progress.Set(ul.percent);
        }, false);
        xhr.onload = function () {
            ul.percent = 100;
            ul.progress.Set(ul.percent);
            try {
                var resp = this.response;
                ul.response = JSON.parse(resp);
            }
            catch (e) {
                ul.response = { status: -1, message: 'An error occurred while uploading file. Please contact Talisma administator. Error code: ' + this.status };
            }
            if (ul.response.status == -100) {
                location.herf = "LogoutTalisma.aspx";
                return;
            }
            ul.progress.Done(ul.response);
        }
        xhr.open("POST", url, true);
        ul.xhr = xhr;
        ul.send = function () {
            xhr.send(fd);
        };
        return ul;
    }

And this is the server side code for upload the image:

private void InterAttachmentUpload() {
            MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 1");
            HttpFileCollection uploads = HttpContext.Current.Request.Files;
            try
            {
                MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 2");
                //FixMarch22(101-240)
                long UploadLength = -1;
                UploadLength = Convert.ToInt64(Application["maxAttachmentSize"]);
                long ActualFileSize = 0;
                for (int i = 0; i < uploads.Count; i++)
                {
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 3:" + i.ToString());
                    HttpPostedFile upload = uploads[i];

                    if (upload.FileName == "")
                        continue;

                    #region Extn Check
                    string restrictedAttacmentTypes = "," + System.Web.HttpContext.Current.Application["RestrictedFileFormat"].ToString()+ ",";
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 4:" + i.ToString());
                    string extn = Path.GetExtension(uploads[i].FileName);
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 5:" + i.ToString());
                    if (!String.IsNullOrEmpty(extn))
                    {
                        MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current,"NSE entering InterAttachmentUpload 6:" + i.ToString());
                        extn = "," + extn.Trim('.') + ",";
                        if (restrictedAttacmentTypes.Contains(extn))
                        {
                            MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 7:" + i.ToString());
                            error = Resources.WebClient.ErrorStrings.IDS_ATTACHMENTS_FILETYPENOTSUPPORTED;
                            status = -1;
                            return;
                        }
                    }
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 8:" + i.ToString());
                    #endregion
                    #region UploadLengthCheck
                    ActualFileSize += uploads[i].ContentLength;
                    if (UploadLength != -1) //Do a file size check only when UploadLength is specified.
                    {
                        MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current,"NSE entering InterAttachmentUpload 9:" + i.ToString());
                        if (ActualFileSize > UploadLength * 1024)
                        {
                            MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 10:" + i.ToString());
                            string strErrorString = string.Format(Resources.WebClient.ErrorStrings.IDS_ATTACHMENTS_MAXSIZEERRROR, UploadLength + " KB");
                            error = strErrorString;
                            status = -1;
                            return;
                        }
                    }
                    #endregion

                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 11:" + i.ToString());
                    Guid fileId = Guid.NewGuid();
                    string fileName = upload.FileName.Substring(upload.FileName.LastIndexOf("\\") + 1);
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 12:" + i.ToString());
                    using (System.IO.BinaryWriter bw = new BinaryWriter(File.Open(Server.MapPath(@"../Attachments/" + HttpContext.Current.Session.SessionID+ "=" + fileId + "=" + fileName), FileMode.Create)))
                    {
                        MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current,"NSE entering InterAttachmentUpload 13:" + i.ToString());
                        byte[] fileBytes = new byte[upload.InputStream.Length];
                        upload.InputStream.Read(fileBytes, 0, Convert.ToInt32(upload.InputStream.Length));
                        bw.Write(fileBytes);
                        MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current,"NSE entering InterAttachmentUpload 14:" + i.ToString());
                        bw.Close();
                    }
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 15:" + i.ToString());
                    if (i==0)
                        str_InterError = "{ \"filenm\":\""+ fileName + "\",\"id\":\""+ fileId + "\",\"sid\":\"" + HttpContext.Current.Session.SessionID + "\",\"size\":\""+ ActualFileSize +"\" }";
                    else
                        str_InterError += ",{ \"filenm\":\"" + fileName + "\",\"id\":\""+ fileId + "\",\"sid\":\"" + HttpContext.Current.Session.SessionID + "\",\"size\":\"" + ActualFileSize + "\" }";
                    MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 16:" + i.ToString());
                }
                MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "NSE entering InterAttachmentUpload 17:");
                error = Resources.WebClient.ErrorStrings.IDS_ATTACHMENTS_SUCCESS;
                status = 0;
            }
            catch (Exception ex)
            {
                error = Resources.WebClient.ErrorStrings.IDS_ATTACHMENTS_UNKNOWERRROR + ex.Message;
                status = -1;
                MTFileTrace.LogTrace(WebClient.Tracing.TraceLevel.One, TraceClass.Error, TraceTo.Default, LOG_SOURCE, System.Web.HttpContext.Current, "WebClient IntxnAttachmentsUpload. An exception occurred.\tMessage:{0}, \tStack Trace:{1}, \tError Type:{2}", ex.Message, ex.StackTrace, ex.GetType().ToString());
            }
        }

It gets stuck when the progress shows 95% and no response will come after that.

Please help us on this.


Viewing all articles
Browse latest Browse all 3527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>