Click here to Skip to main content
15,885,767 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
After uploading file more that 0,5MB into SQL database, my AJAX call falls into error:
function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}

can somebody tell me what I'm doing wrong here and how to show name of the file in UI?

What I have tried:

My Ajax:

function loadFileData() {

    $.ajax({
        type: "GET",
        url: "/File/FileIndex",
        dataType: "JSON",
        success: function (data) {
            $.each(data, function (i, val) {
                var trow = $('<tr/>').data("id", val.id);
                var trowa = $('<tr/>');
                var trowb = $('<tr/>').data("id", val.id);
                trow.append('<td colspan="2"><a href="#" class="FileDownload">' + val.Name + '</a>' + " " + '</td>');
                trowa.append('<td><input type="file" id="FileUpload" /></form></td>');
                trowb.append('<td><input type="button" class="btnUpload" value="Upload File" /><input type="button" id="btnClear" value="Clear" /></td>');

                tab.append(trow);
                tab.append(trowa);
                tab.append(trowb);

            });
            $("#showFiles").html(tab);
        },
        error: function (err) {
            alert("Failed! Please try again." + err.error);
        }
       });
     }


My Controller:

[HttpPost]
        public JsonResult UpdateJsionFile(int? id, HttpPostedFileBase file)
        {
            byte[] bytes;
            //decimal fileSize = 100;
            var supportedTypes = new[] { "txt","doc","docx","pdf", "xls", "xlsx", "png" };
            var fileExt = System.IO.Path.GetExtension(file.FileName).ToLower().Substring(1);
            using (BinaryReader br = new BinaryReader(file.InputStream))
            {
                bytes = br.ReadBytes(file.ContentLength);
            }

            if(!supportedTypes.Contains(fileExt))
            {
                return Json(new { success = false, error = "File extention is invalid - upload only WORD/PDF/EXCEL/TXT/PNG files" }, JsonRequestBehavior.AllowGet);
            }


            if(file.FileName.Length>50 )
            {
                return Json(new { success = false, error = "File name is too long, max. 50 symbols" }, JsonRequestBehavior.AllowGet);
            }

            if (file.ContentLength > 4096)
            {
                return Json(new { success = false, error = "File size is too big, max 10MB" }, JsonRequestBehavior.AllowGet);
            }


            using (FileDBEntities db = new FileDBEntities())
            {
                tblFile f = db.tblFiles.Where(p => p.id == id).FirstOrDefault();

                f.Name = Path.GetFileName(file.FileName);
                f.ContentType = file.ContentType;
                f.Data = bytes;

                db.SaveChanges();
            }
            return Json(new { success = true }, JsonRequestBehavior.AllowGet);

        }



there is no error with "small" files. Strange is, that with normal razor code it works fine... error according to a xhr.status is "500" but why it works then with small files???
Posted
Updated 11-Aug-20 8:35am
v3
Comments
Patrice T 9-Aug-20 7:00am    
and the error message is ?
Member 14803832 9-Aug-20 7:01am    
function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
Patrice T 9-Aug-20 7:06am    
this don't look like an error message.
Member 14803832 9-Aug-20 7:08am    
Yes it is, this is the message what I'm recieving, when ajax-call is executed
Member 14803832 9-Aug-20 7:09am    
error: function (err) {
alert("Failed! Please try again." + err.error);
}

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900