通过天蓝色存储上传图像

时间:2017-03-13 16:22:15

标签: javascript function azure azure-functions

我正在尝试通过azure函数将图像上传到blob存储。有点努力让它发挥作用。

var data = new FormData();
        xhr = new XMLHttpRequest();
        data.append('file', file);
        data.append('name', file.name);

        xhr.open('POST', 'https://[blobstorage]/api/upload/foo', true);
        xhr.setRequestHeader('Content-type', 'multipart/form-data;');
        xhr.send(data);

在天蓝色函数中触发POST:

if (context.req.method === 'POST') {
        fs.readFile(context.req.rawBody, function (err, data) {
            context.log('data', data);
            blobService.createBlockBlobFromText(containerName, blob, data, {contentSettings: {contentType: 'image/png'}}, function(){
                context.done();
            });
        });
    }

这会将一个文件添加到blob存储中,但不幸的是它不是图像。

1 个答案:

答案 0 :(得分:2)

我相信$("li.nav-item").on("click", function(){ $("li.nav-item").removeClass("line"); $(this).addClass("line"); }); 在日志中显示context.log('data', data);。这就是为什么你得到零大小的文件。不幸的是,多部分解析不是Azure功能的一部分。你可以在这里找到更多细节: How to parse Multi-part form data in an Azure Function App with HTTP Trigger? (NodeJS)