4***@qq.com
4***@qq.com
  • 发布:2020-08-10 15:32
  • 更新:2020-11-05 20:51
  • 阅读:1018

通过 HTTP URL 方式访问到云函数,如何上传图片?求助 求助 求助!!!

分类:uniCloud
exports.main = async  (event, context) => {  
    const querystring = require('querystring');  
    const {  
        encode,  
        decode  
    } = require('js-base64');  
    let body = decode(event.body); // 文件数据  
    // 边界字符串  
    let boundary = event.headers['content-type'].split('; ')[1].replace('boundary=', '');  

    let file = querystring.parse(body, '\r\n', ':');  

    let fileInfo = file['Content-Disposition'].split('; ');  
    let fileName = '';  
    let ext = '';  

    for (let value in fileInfo) {  
        if (fileInfo[value].indexOf("filename=") != -1) {  
            fileName = fileInfo[value].substring(10, fileInfo[value].length - 1);  

            if (fileName.indexOf('\\') != -1) {  
                fileName = fileName.substring(fileName.lastIndexOf('\\') + 1);  
            }  
            ext = fileName.substr(fileName.indexOf('.') + 1, fileName.length);  
        }  
    }  

    let upperBoundary = body.toString('ascii').indexOf(file['Content-Type'].substring(1)) + file['Content-Type'].substring(1).length;  

    let binaryDataAlmost = body.toString('ascii').substring(upperBoundary).replace(/^\s\s*/, '').replace(/\s\s*$/, '');  
    let binary = binaryDataAlmost.substring(0, binaryDataAlmost.indexOf(`--${boundary}--`));  

    let result = await uniCloud.uploadFile({  
        cloudPath: fileName,  
        fileContent: binary  
    });  
    return  binary;  

}  

文件可以上传成功,但是图片大小不对 而且没法预览。text 可以预览 但是有乱码。 表格 文档 得修复才能预览。求助大神帮忙看看。没法使用node 关于上传文件的中间件,所以自己处理上传文件。

2020-08-10 15:32 负责人:无 分享
已邀请:
z***@outlook.com

z***@outlook.com

我和你一样,现在还没头绪

DCloud_uniCloud_WYQ
MonikaChen

MonikaChen

听说阿里云云函数无法向云存储写数据,所以通过云函数应该无法上传文件吧

张宝江

张宝江

我用el-upload 组件上传,不会弄了。能否指点一下。

该问题目前已经被锁定, 无法添加新回复