[英]Ajax doesn't work by retrieving big file from database
By retrieving file more than 0.5MB from SQL database ajax falls into error every time, what am I doing wrong here?通过从 SQL 数据库 ajax 检索超过 0.5MB 的文件,每次都会出错,我在这里做错了什么?
$(document).ready(function () {
loadFileData();
});
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">' + escape(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 (error) {
alert("Failed! Please try again." + error);
}
});
var tab = $('<table style="width:100px" border=1 class=MyTable></table>');
}
my controller:我的 controller:
//GET: File
public JsonResult FileIndex()
{
List<tblFile> fileList = new List<tblFile>();
using (FileDBEntities db = new FileDBEntities())
{
fileList = db.tblFiles.ToList();
}
return new JsonResult { Data = fileList, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
with small files it works perfectley, but why it falls down by retriving file more than 0,5MB?对于小文件,它可以完美地工作,但是为什么它会因检索超过 0,5MB 的文件而崩溃? message, what I'm reciving:
消息,我收到了什么:
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}
I think you should:我觉得你应该:
Your Controller: you should return with binary ||您的 Controller:您应该返回二进制 || file Stream
文件 Stream
//GET: File
public JsonResult FileIndex()
{
List<byte> fileList = new List<byte>();
using (FileDBEntities db = new FileDBEntities())
{
fileList = db.tblFiles.ToList();
foreach(var itemFile in fileList) {
fileList.add(File.ReadAllBytes(itemFile));
}
}
return new JsonResult { Data = fileList, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.