2016-06-15 21 views
0

MongoDBに問題がありますが、Java SOAP Webサービスがあり、フロントがAngular/Bootstrap/Jqueryにあり、mongoデータベースにファイルを保存する必要がありますが、これを行うには、3日間これを試しています.Jquery/jsでこれを行うか、jsで直接SOAPサービスを呼び出す例が必要です。<input type="file" id="file"/>でファイルを受け取ります。 ありがとうございます。 私のファイルの種類は、mongoデータベースに保存する必要があるよりもjsonとイメージを持つtgzです。ファイルをMongoDBに保存します

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>"; 

    } 

マイ石鹸パラメータは

+2

あなたは3日間試していると言います。その時にどのようなアプローチを試みましたか?どのような問題が発生しましたか? –

+0

AngularまたはjQueryを使用していますか?とにかく、データベースはファイルを保存しません。彼らはURLをファイルに保存します。 –

+0

私はsoapパラメータでファイルを渡そうとしましたが、Ajaxリクエストは私のメソッドを認識しませんでした。私はバイナリ配列または文字列に変換する必要があると思いますが、これを行うにはsuccesはありませんでした。 –

答えて

0

データベースは、データを格納するためのものですjava.io.Fileの型です。おそらく、画像などのファイルをデータベースに直接張り付けることは想定されていません。代わりに、ファイルを一部のストレージサーバーまたはCDNにアップロードし、データベースからリンクします。

次に、データベースにクエリを行い、URLを見つけて、そのURLからリソースを取得します。

+0

これは別の方法ですが、私のプロジェクトの提案はファイルをデータベースに格納することです。mongoDbはこれをサポートしています。 –

+0

私はこれをどうやって、私のために画像用のストレージサーバを持っていますか? –

関連する問題