0

我正在尝试编写一些 javascript,让用户将文件上传到 imgur。对我来说,第一步是从我的网络服务器(公开可用)加载图像并尝试使用我的 api 密钥上传该图像。这是我到目前为止所拥有的:

self.uploadImage = function upload(file) {
        debugger;
        file = $.get("../../Content/images/icon.png", function () {
            alert("success");
        })
        .done(function () { alert("second success"); })
        .fail(function () { alert("error"); })
        .always(function () { alert("finished"); });

        // file is from a <input> tag or from Drag'n Drop
        // Is the file an image?

        if (!file || !file.type.match(/image.*/)) return;  // fails here

        // It is!
        // Let's build a FormData object

        var fd = new FormData();
        fd.append("image", file); // Append the file
        fd.append("key", "<my key>");

        // Create the XHR 
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "http://api.imgur.com/2/upload.json");
        xhr.onload = function() {
            // The URL of the image is:
            JSON.parse(xhr.responseText).upload.links.imgur_page;
        };

        // And now, we send the formdata
        xhr.send(fd);
        debugger;
    };

我无法通过第一if条语句 - 我收到一条错误消息

未捕获的类型错误:无法调用未定义的方法“匹配”

我确实从 .get 获得了成功警报...我不确定如何进一步调试它,因为我对 js 有点陌生...任何帮助将不胜感激。

在 if 语句中:

在此处输入图像描述

4

1 回答 1

0

似乎file.type是未定义的。原因是您错误地使用了jQuery.get函数的返回值。此函数返回一个没有属性的jqXHRtype对象。

于 2013-06-05T01:57:10.610 回答