带Mvc razor的Krajee引导文件输入

带Mvc razor的Krajee引导文件输入,razor,model-view-controller,Razor,Model View Controller,我想将Krajee引导文件输入与Mvc razor一起使用,请帮助我完成将图像上传到服务器的过程以及actionResult的json结果 我刚刚在我的查看页面中包含了一个必需的js和css文件,并添加了一行 <input id="input-702" name="kartik-input-702[]" type="file" multiple="true" class="file-loading"> 此行正在格式化,显示拖放效果和“选择文件”按钮。文件选择和缩略图创建工作正常,但

我想将Krajee引导文件输入与Mvc razor一起使用,请帮助我完成将图像上传到服务器的过程以及actionResult的json结果

我刚刚在我的查看页面中包含了一个必需的js和css文件,并添加了一行

<input id="input-702" name="kartik-input-702[]" type="file" multiple="true" class="file-loading">
此行正在格式化,显示拖放效果和“选择文件”按钮。文件选择和缩略图创建工作正常,但在上载操作中有fileinput、js函数ajaxSubmit,用于将内容发布到HomeController ActionResult上载


现在,我想将所有未使用ActionResult上传的文件保存到服务器,并将值传递回js。如何检索表单数据和处理。我有一个类似的问题。在ajax调用中可以使用它,但在请求中总是得到一个文件,而我需要得到多个文件,但应该可以为您工作

我的代码如下: HTML:

我希望MVC控制器能够正常工作,但我不:

[HttpPost]
public JsonResult Upload(IEnumerable<HttpPostedFileBase> fileUpload)
{
  //somde logic
}
我的场景就是那个用户:

点击“浏览” 选择图片并能够在预览中看到它 再次单击“浏览” 选择图片并将图片附加到当前预览列表中 单击上载,我将获得控制器中的所有文件
我唯一能理解它的方法是插件上的ajax调用开关,它允许附加预览列表。不幸的是,我无法将所有图片提交给控制器

我也有类似的问题。在ajax调用中可以使用它,但在请求中总是得到一个文件,而我需要得到多个文件,但应该可以为您工作

我的代码如下: HTML:

我希望MVC控制器能够正常工作,但我不:

[HttpPost]
public JsonResult Upload(IEnumerable<HttpPostedFileBase> fileUpload)
{
  //somde logic
}
我的场景就是那个用户:

点击“浏览” 选择图片并能够在预览中看到它 再次单击“浏览” 选择图片并将图片附加到当前预览列表中 单击上载,我将获得控制器中的所有文件
我唯一能理解它的方法是插件上的ajax调用开关,它允许附加预览列表。不幸的是,我无法将所有图片提交给控制器

我试图找到上述问题的解决方案,最终找到了解决方案。因为我能够从控制器将文件保存在服务器位置,但不幸的是,我无法将json响应从控制器发送到javascript

使用控制器操作保存图像:

[HttpPost]
    public ActionResult upload()
    {           
        foreach (string item in Request.Files)
        {
            HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase;
            string fileName = file.FileName;
            string UploadPath = "~/Images/";

            if (file.ContentLength == 0)
                continue;
            if (file.ContentLength > 0)
            {
                string path = Path.Combine(HttpContext.Request.MapPath(UploadPath), fileName);
                string extension = Path.GetExtension(file.FileName);

                file.SaveAs(path);
            }
        }

        return Json("");
}
要实现delete按钮,我们必须以异步模式将数据作为json数组对象从服务器发送

initialPreview: [
    '<img src='/images/desert.jpg' class='file-preview-image' alt='Desert' title='Desert'>',
],


initialPreviewConfig: [
    {
        caption: 'desert.jpg', 
        width: '120px', 
        url: '/localhost/avatar/delete', 
        key: 100, 
        extra: {id: 100}
    }
]

有人能帮我在controller中创建json数组对象并将其作为响应对象发送吗?

我试图找到上述问题的解决方案,最终找到了解决方案。因为我能够从控制器将文件保存在服务器位置,但不幸的是,我无法将json响应从控制器发送到javascript

使用控制器操作保存图像:

[HttpPost]
    public ActionResult upload()
    {           
        foreach (string item in Request.Files)
        {
            HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase;
            string fileName = file.FileName;
            string UploadPath = "~/Images/";

            if (file.ContentLength == 0)
                continue;
            if (file.ContentLength > 0)
            {
                string path = Path.Combine(HttpContext.Request.MapPath(UploadPath), fileName);
                string extension = Path.GetExtension(file.FileName);

                file.SaveAs(path);
            }
        }

        return Json("");
}
要实现delete按钮,我们必须以异步模式将数据作为json数组对象从服务器发送

initialPreview: [
    '<img src='/images/desert.jpg' class='file-preview-image' alt='Desert' title='Desert'>',
],


initialPreviewConfig: [
    {
        caption: 'desert.jpg', 
        width: '120px', 
        url: '/localhost/avatar/delete', 
        key: 100, 
        extra: {id: 100}
    }
]

有人能帮我在controller中创建json数组对象并将其作为响应对象发送吗?

我们还需要更多信息。你试过什么?什么地方出了问题?请看一下我的最新答案并添加您的观点。也许你能在这个问题上提供帮助。我们需要更多的讨论。你试过什么?什么地方出了问题?请看一下我的最新答案并添加您的观点。也许您可以在这个问题上提供帮助。设置插件选项->overwriteInitial:false,overwriteInitial:boolean是否要覆盖初始预览内容和标题设置。这默认为true,因此,在上载新文件或清除文件时,任何initialPreview内容集都将被覆盖。将其设置为false将有助于显示数据库中保存的图像或文件始终-特别是在使用多文件上载功能时非常有用。它可以工作,但部分工作。我所期望的是,我在控制器方法中获得所有文件,并在处理后重定向到不同的页面。现在,我的“upload”方法被调用的次数是我提交的文件的次数,它希望返回正确的JSON——我也不知道如何格式化。任何ideias?根据文档,如果需要多个文件,必须将async设置为false。设置插件选项->overwriteInitial:false,overwriteInitial:boolean是否要覆盖初始预览内容和标题设置。这默认为true,因此,在上载新文件或清除文件时,任何initialPreview内容集都将被覆盖。将其设置为false将有助于显示数据库中保存的图像或文件始终-特别是在使用多文件上载功能时非常有用。它可以工作,但部分工作。我所期望的是,在处理redi之后,我将在控制器方法中获取所有文件
指向不同的页面。现在,我的“upload”方法被调用的次数是我提交的文件的次数,它希望返回正确的JSON——我也不知道如何格式化。任何ideias?根据文档,如果需要多个文件,必须将async设置为false。您可能已经找到了创建JSON数组对象并将其发送回的答案。但以防万一,你还没有或为将来的求职者。您可以使用匿名类型。e、 g:返回Jsonnew{success=true,somedata=somedata};其中key=由、、分隔的值,。因此,在本例中,您的JSON字符串/对象将是{success:true,somedata:somedata}。希望这有帮助:我认为你对int I=0的理解是错误的;i[HttpPost] public ActionResult upload() { foreach (string item in Request.Files) { HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase; string fileName = file.FileName; string UploadPath = "~/Images/"; if (file.ContentLength == 0) continue; if (file.ContentLength > 0) { string path = Path.Combine(HttpContext.Request.MapPath(UploadPath), fileName); string extension = Path.GetExtension(file.FileName); file.SaveAs(path); } } return Json(""); }
initialPreview: [
    '<img src='/images/desert.jpg' class='file-preview-image' alt='Desert' title='Desert'>',
],


initialPreviewConfig: [
    {
        caption: 'desert.jpg', 
        width: '120px', 
        url: '/localhost/avatar/delete', 
        key: 100, 
        extra: {id: 100}
    }
]