将文件保存在MongoDB中

时间:2016-06-15 13:23:08

标签: javascript java jquery mongodb soap

我遇到了MongoDB的问题,我有一个Java SOAP Web服务,我的前端是Angular / Bootstrap / Jquery,我需要在我的mongo数据库中保存一个文件,但我不知道我是怎么做的,我正在尝试这3天,我需要一个例子,Jquery / js调用SOAP服务来执行此操作或直接使用js,我收到的文件为<input type="file" id="file"/>。 谢谢您的帮助。 我的文件类型是一个带有json和图像的tgz,而不是我需要保存在我的mongo数据库中。

function uploadCard() {
    var fileList = new Array();
    fileList = document.getElementById("file").files;
    var fr = new FileReader();
    if (FileReader && fileList && fileList.length) {
        fr.readAsArrayBuffer(fileList[0]);
        imageData = fr.result;
    }

    jQuery.support.cors = true;
    var wsUrl = "http://" + window.location.hostname + ":7004/CardServiceImpl/CardService?WSDL";
    var soapRequest = crateCardSoapRequest(document.getElementById("file").files[0]);
    $.ajax({
        crossDomain: true,
        type: "POST",
        url: wsUrl,
        contentType: "text/xml",
        dataType: "xml",
        data: soapRequest,
        success: processSuccess,
        error: processError
    });
    }

    function crateCardSoapRequest(input) {

    var req = "<soap:Envelope xmlns:soap=" + '"' + "http://schemas.xmlsoap.org/soap/envelope/" + '"' + ">" +
            "<soap:Body>" +
            "<ns1:uploadCard xmlns:ns1=" + '"' + " http://card.ejb.card_editor.com.br/" + '"' + ">" +
            "<arg0>" +
            "<cardBean>"+
    "<description>StringValue</description>" +
            "<id>23</id>" +
            "<name>StringValue</name>" +
             "<file>" + input + "</file>" +
            "<template>" + "</template>" +
            "</cardBean>" +
            "<nickNameUser>lucas_santos</nickNameUser>" +
            "</arg0>" +
            "</ns1:uploadCard>" +
            "</soap:Body>" +
            "</soap:Envelope>";

    }

我的soap参数的类型为java.io.File

1 个答案:

答案 0 :(得分:0)

数据库用于存储数据。您可能不应该将文件(如图像等)直接粘贴到数据库中。而是将文件上传到某个存储服务器或CDN,并链接到数据库中的文件。

然后,您查询数据库,找到URL,然后从该URL获取资源。