Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery文件上传显示.NETMVC上的文件列表_Jquery_Json_File Upload_Jquery File Upload - Fatal编程技术网

Jquery文件上传显示.NETMVC上的文件列表

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

我已经安装了NuGet Jquery文件上传插件。 上传器工作得很好。我可以轻松地拖放和上传文件到我的服务器与它

只有两个问题阻碍了我完成这个项目

  • 上传文件后,我需要向用户显示这些文件,即最近上传的文件列表。 但是,当调用页面并显示上传文件列表时,我没有正确显示文件列表,而是将此JSON文档嵌入Html文件。Json文件确实包含以前上载的文件的正确数据
  • 见下文。。。此处仅显示其一部分

    [{"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".
       }
    
    
    } ]
    
    一旦更改为此格式。上载者正确地上载了文件,并且在之后显示这些文件时不再出现问题