Jquery文件上传显示.NETMVC上的文件列表
我已经安装了NuGet Jquery文件上传插件。 上传器工作得很好。我可以轻松地拖放和上传文件到我的服务器与它 只有两个问题阻碍了我完成这个项目Jquery文件上传显示.NETMVC上的文件列表,jquery,json,file-upload,jquery-file-upload,Jquery,Json,File Upload,Jquery File Upload,我已经安装了NuGet Jquery文件上传插件。 上传器工作得很好。我可以轻松地拖放和上传文件到我的服务器与它 只有两个问题阻碍了我完成这个项目 上传文件后,我需要向用户显示这些文件,即最近上传的文件列表。 但是,当调用页面并显示上传文件列表时,我没有正确显示文件列表,而是将此JSON文档嵌入Html文件。Json文件确实包含以前上载的文件的正确数据 见下文。。。此处仅显示其一部分 [{"group":null,"name":"999408_10153832503160788_12451062
[{"group":null,"name":"999408_10153832503160788_1245106221_n.jpg","type":"image/png","size":78950,"progress":"1.0","url":"/Upload/UploadHandler.ashx?f=999408_10153832503160788_1245106221_n.jpg","thumbnail_url":"data:image/png;base64,/9j/4AAQSkZJRgABAgAAAQABAAD//gAEKgD/4gIcSUNDX1BST0ZJTEUAAQEAAAIM
下面的代码是处理所述JSON文件准备的代码。调用此方法后,我只返回视图
public ActionResult Index()
{
this.ListCurrentFiles();
return View();
}
private void ListCurrentFiles()
{
var files =
new DirectoryInfo(this.rootImgFolder)
.GetFiles("*", SearchOption.TopDirectoryOnly)
.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden))
.Select(f => new FilesStatus(f)) //Need to check more this FilesStatus Code.
.ToArray();
if (files.Any()) { //Only if there are files there show.
string jsonObj = js.Serialize(files);
HttpContext.Response.AddHeader("Content-Disposition", "inline; filename=\"files.json\"");
HttpContext.Response.Write(jsonObj);
HttpContext.Response.ContentType = "application/json";
}
}
我认为,因为他们的文档只是显示了这一点,它将正确地显示文件应该如何显示。看看他们的演示,这样你就知道我所说的显示文件的意思了 我找到了这个问题的解决方案 我感到惊讶的是,没有文件表明这一点,所以不明显的问题 当Json被序列化并写入HTTPContext.Response时,默认情况下下载插件时Json文件的结构是这样的
[
{
name: "pic.jpg",
type: "IMAGE",
size: "123123".
},
{
name: "pic2.jpg",
type: "IMAGE",
size: "123432443".
}
]
因为他们的文档中说文件在下载时就可以使用了,所以我不认为这就是为什么文件被上传了,但没有在表中正确显示的原因
然而,在他们的文档中有一个小例子,说明了JSON文件应该是什么样子的,但是如果不密切注意,它很容易被忽略
[
{ "files":
{
name: "pic.jpg",
type: "IMAGE",
size: "123123".
},
{
name: "pic2.jpg",
type: "IMAGE",
size: "123432443".
}
} ]
一旦更改为此格式。上载者正确地上载了文件,并且在之后显示这些文件时不再出现问题