Javascript 使用jquery文件上载将图像上载到cloudinary和我自己的服务器

Javascript 使用jquery文件上载将图像上载到cloudinary和我自己的服务器,javascript,jquery,file-upload,cloudinary,Javascript,Jquery,File Upload,Cloudinary,我使用jQuery文件上载将图像上载到我的服务器。现在我想测试Cloudinary,但在测试期间,我仍然希望将所有图像上传到我自己的服务器 我用于将图像上载到服务器的代码是: $(function () { $('#fileupload').fileupload({ url: '/Upload/Upload.ashx', maxFileSize: 15000000, acceptFileTypes: /(\.|\/)(jpe?g)$/i,

我使用jQuery文件上载将图像上载到我的服务器。现在我想测试Cloudinary,但在测试期间,我仍然希望将所有图像上传到我自己的服务器

我用于将图像上载到服务器的代码是:

$(function () {
    $('#fileupload').fileupload({
        url: '/Upload/Upload.ashx',
        maxFileSize: 15000000,
        acceptFileTypes: /(\.|\/)(jpe?g)$/i,
        dataType: "json",
        autoUpload: true,
        start: function (e) {
            $('#progress').removeClass('hidden');
        },
        progress: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .progress-bar').css('width', progress + '%');
        },
        always: function (e) {
            $('#progress').addClass('hidden').fadeOut("slow");
        },
        done: function (e, data) {
            $('#progress').addClass('hidden');
            parent.location.reload();
        },
    })
    .bind('fileuploadadd', function (e, data) {
        $('#error').addClass('hidden');
    })
    .bind('fileuploadprocessfail', function (e, data) {
        var currentFile = data.files[data.index];
        if (data.files.error && currentFile.error) {
            $('#error').html('error: ' + data.files[data.index].error);
            $('#error').removeClass('hidden');
        }
    })
});
使用Cloudinary上载的代码为:

$('#fileupload').unsigned_cloudinary_upload('test12345',
    { cloud_name: 'test' }
).bind('cloudinarystart', function (e, data) {
    $('#progress').show();
}
).bind('cloudinaryprogress', function (e, data) {
    $('.progress-bar').css('width',
        Math.round((data.loaded * 100.0) / data.total) + '%');
}
).bind('cloudinarydone', function (e, data) {
    $('#progress').hide();
    parent.location.reload();
});
现在我正在寻找一种方法,既可以同时进行,也可以在彼此之后进行

我试过什么? 我试图将Cloudinary中的代码放在Jquery文件上传代码的“完成”部分,但这不起作用。我还尝试先销毁Fileupload,然后启动Cloudinary代码,但也不起作用。我尝试在/then时使用Jquery,但仍然没有成功。我搜索了Google和Stackoverflow,但没有找到我需要的任何东西

上传的第一部分(FileUpload)正在工作。但阴云密布的部分却不是这样。控制台窗口中没有错误

我需要一种组合脚本的方法。。有人能帮我吗

更新 我修复了它,只运行了第一个脚本,并在Upload.ashx中使用asp.net上传到Cloudinay。这是有效的

public static UploadResult UploadImage(string tags, string fileName, Stream stream)
{
    var uploadParams = new ImageUploadParams()
    {
        File = new FileDescription(fileName, stream),
        PublicId = fileName,
        Tags = tags,
        UploadPreset = "test12345",
    };

    var result = new Cloudinary(GetAccount()).Upload(uploadParams);
    return new UploadResult
    {
        uri = result.SecureUri,
        error = result.Error != null ? result.Error.Message : string.Empty
    };
}
当您说“不工作”时,您的意思是成功上传后根本没有触发
cloudinarydone
事件?因为它应该,而且您应该能够获得它的详细信息并将其传递给您的服务器。下面是一个例子:


或者,这可能是更推荐的方法,您可以先将映像上载到服务器,然后执行服务器端上载,即让服务器直接将映像上载到您的Cloudinary帐户。

如果我将两个脚本组合在一起,则会执行第一个(本地)脚本。第二个(cloudinary)根本不运行。我现在通过使用asp.net而不是jQuery上传到cloudinay来修复它。这是目前的工作。谢谢