Jquery文件上传:成功上传图像后调用数据库

时间:2017-08-17 03:41:55

标签: jquery asp.net-mvc jquery-file-upload blueimp

我正在使用jQuery文件上传文件上传MVC和Web API。使用默认行为singleFileUploads = true(默认情况下,选择的每个文件都使用个人上载 /请求XHR类型上传)。

一旦上传到服务器的所有图像都完成,我试图在最终数据库插入调用中保存图像和其他一些数据的总数。 另一个问题是Web服务器无法访问文件服务器,只有应用服务器可以保存和读取文件服务器中的图像。

我已经知道类似的问题,但两者都有不同的环境和问题。 running SQL after successful upload with jQuery-File-Upload

这是代码:我尝试使用完成和完成的所有回调函数  完成但每个文件上传后每个函数都会调用。我试图在所有文件上传完成后只调用一次SaveDataDB()。

$(function () {

    $form = $('#fileupload').fileupload({
        dataType: 'json',
        singleFileUploads: true,
        sequentialUploads:false,
        url: "/FileUpload/Upload",
        add: function (e, data) {
            $("#btnStart").on("click", function () {
                data.submit();
            })
        },
        completed: function (e, data) {
            $.ajax({
                url: "/FileUpload/SaveDataDB",
                type: "POST",
                dataType: "json"
            });
        },
    }).bind('fileuploadcompleted', function (e, data) { alert("Message", "Title"); })
      .bind('fileuploadfinished', function (e, data) { alert("fileuploadfinished", "Title") })
      **.bind('fileuploadstop', function (e, data) {
            $.ajax({
                url: "/FileUpload/SaveDataDB",
                type: "POST",
                dataType: "json",
                data: TotalFiles,
                success: function (data) {
                };**

});

MVC控制器

 [HttpPost]
    public JsonResult Upload()
    {
        var resultList = new List<ViewDataUploadFilesResult>();

        var CurrentContext = HttpContext;

        filesHelper.UploadAndShowResults(CurrentContext, resultList);
        JsonFiles files = new JsonFiles(resultList);
        bool isEmpty = !resultList.Any();
        if (isEmpty)
        {
            return Json("Error ");
        }
        else
        {
            return Json(files);
        }
    }

    [HttpPost]
    public JsonResult SaveDataDB()
    {
        return Json(new { status = "Success", message = "Success" });
    }

1 个答案:

答案 0 :(得分:0)

您可以尝试将它们合并到一个

中,而不是进行两个不同的操作
[HttpPost]
    public JsonResult Upload()
    {
        var resultList = new List<ViewDataUploadFilesResult>();

    var CurrentContext = HttpContext;

    filesHelper.UploadAndShowResults(CurrentContext, resultList);
    JsonFiles files = new JsonFiles(resultList);
    bool isEmpty = !resultList.Any();
    if (isEmpty)
    {
        return Json("Error ");
    }
    else
    {
        //Put the SaveToDb Code here 
        return Json(new{files=files,success="success",message ="success");
    }
}