gpt4 book ai didi

json - FineUploader OnComplete 方法未触发

转载 作者:行者123 更新时间:2023-12-04 22:48:07 26 4
gpt4 key购买 nike

所以,我在 MVC 4 应用程序中使用 FineUploader 3.3,这是一个非常酷的插件,非常值得象征性的成本。现在,我只需要让它正常工作。
我对 MVC 很陌生,对传回 JSON 完全陌生,所以我需要一些帮助才能让它工作。这是我正在使用的,都在 doc.ready 内.

var manualuploader = $('#files-upload').fineUploader({
request:
{
endpoint: '@Url.Action("UploadFile", "Survey")',
customHeaders: { Accept: 'application/json' },
params: {
//variables are populated outside of this code snippet
surveyInstanceId: (function () { return instance; }),
surveyItemResultId: (function () { return surveyItemResultId; }),
itemId: (function () { return itemId; }),
imageLoopCounter: (function () { return counter++; })
},
validation: {
allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'bmp']
},
multiple: true,
text: {
uploadButton: '<i class="icon-plus icon-white"></i>Drop or Select Files'
},
callbacks: {
onComplete: function(id, fileName, responseJSON) {
alert("Success: " + responseJSON.success);
if (responseJSON.success) {
$('#files-upload').append('<img src="img/success.jpg" alt="' + fileName + '">');
}
}
}
}
编辑:我一直在使用 Internet Explorer 9,然后切换到 Chrome、Firefox,我可以上传得很好。 IE9 需要什么?无论浏览器如何,验证都不起作用。

端点触发,文件/参数被填充,所以这一切都很好!验证不会阻止用户选择此列表之外的内容,但我暂时可以使用它。我可以成功保存并做我需要做的上传,减去 OnComplete开火。实际上,在 IE 中,我收到了一个包含当前内容的 OPEN/SAVE 对话框。
问题: onComplete中的函数参数是不是? ( id , filename , responseJSON ) 在返回或离开时被填充?我只是对此感到困惑。我的 JSON 中是否必须包含这些参数并进行填充?
我不这样做(填充这些参数),我在 C# 中的输出方法返回 JsonResult看起来像这样,只返回“成功”(如果适用):
return Json(new { success = true });  
我需要添加更多吗?这一行是在保存之后,我想做的就是告诉用户一切都好还是不好。是否 success我的 JSON 中的属性与 responseJSON.success 匹配?
我错过了什么,或者有什么问题?

最佳答案

解决您问题中的项目:

  • 关于“选择文件”对话框内的限制,您还必须设置 acceptFiles验证选项。见 validation option section in the readme更多细节。
  • 您的 validation选项属性在错误的地方。它不应该在 request 下属性/选项。您的 text 也是如此, multiple , 和 callbacks选项/属性。此外,您没有为 jQuery 插件正确设置回调。
  • IE 中的打开/保存对话框是由您的服务器未返回带有正确“内容类型” header 的响应引起的。您回复的 Content-Type 应该是“text/plain”。见 server-side readme更多细节。
  • 您的服务器在其响应中返回的任何内容都将由 Fine Uploader 使用 JSON.parse 进行解析。在处理响应客户端时。调用结果JSON.parse您服务器上的响应将作为 responseJSON 传递您的 onComplete 的参数回调处理程序。如果您想将特定信息从您的服务器传递到您的客户端代码,例如您可能希望在客户端显示的某些文本、上传文件的新名称等,您可以通过向您的客户端添加适当的属性来实现服务器响应。这些数据将在您的 onComplete 中提供给您。处理程序。如果您对此没有任何需要,您可以简单地返回您当前正在返回的“成功”响应。我链接到的服务器端自述文件提供了有关所有这些的更多信息。

  • 为了澄清我在 #2 中所说的内容,您的代码应如下所示:
    $('#files-upload').fineUploader({
    request: {
    endpoint: '@Url.Action("UploadFile", "Survey")',
    customHeaders: { Accept: 'application/json' },
    params: {
    //variables are populated outside of this code snippet
    surveyInstanceId: (function () { return instance; }),
    surveyItemResultId: (function () { return surveyItemResultId; }),
    itemId: (function () { return itemId; }),
    imageLoopCounter: (function () { return counter++; })
    }
    },
    validation: {
    allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'bmp']
    },
    text: {
    uploadButton: '<i class="icon-plus icon-white"></i>Drop or Select Files'
    }
    })
    .on('complete', function(event, id, fileName, responseJSON) {
    alert("Success: " + responseJSON.success);
    if (responseJSON.success) {
    $('#files-upload').append('<img src="img/success.jpg" alt="' + fileName + '">');
    }
    });

    关于json - FineUploader OnComplete 方法未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369228/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com