Corda: 无法向Corda节点上传附件

问题描述 投票:0回答:1

我无法使用以下javascript代码上传附件到Corda节点。我得到 "HTTP ERROR 400 Probleming uploadattachment. 原因是:"有一个没有文件的上传请求"。Got an upload request with no files"。

uploadmodalInstance.attachmentfile = document.getElementById('attachmentfile').files[0];

var formdata = new FormData();
formdata.append('jar', uploadmodalInstance.attachmentfile);

$http.defaults.headers.common['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';

// NOW UPLOAD THE FILES.
$http({
    method: 'POST',
    url: '/upload/attachment',
    data: formdata,
    headers: {'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryqtDm9u9ZQbwnwy3A'}
}).then(
    (result) => {
        uploadmodalInstance.displayMessage(result); //success
    },
    (result) => {
        uploadmodalInstance.displayMessage(result); //failure
    }
);

然而,我可以使用HTML上传相同的附件,如下图所示。

<form action="http://localhost:10007/upload/attachment" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <input type="file" name="jar" class="form-control">
        </div>
        <br>
        <button type="submit" class="btn btn-default">Upload blacklist</button>
 </form>

javascript的问题是什么?我在Firefox开发者工具中检查了标题和formdata,两种情况下都是一样的。

下面是包含附件文件元素的HTML页面代码。

<script type="text/ng-template" id="demoAppUploadModal.html">
        <div class="modal-header">
            <h4 class="modal-title">Upload a Document</h4>
        </div>
        <form>
            <div class="modal-body">
                <div class="form-group">
                    <label for="attachmentfile" class="control-label">Document Attachment:</label>
                    <input type="file" ng-model="uploadmodalInstance.form.attachmentfile" class="form-control" id="attachmentfile">
                </div>

                <div ng-show="modalInstance.formError" class="form-group">
                    <div class="alert alert-danger" role="alert">
                        <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
                        <span class="sr-only">Error:</span>
                        Enter valid parameters
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <button ng-click="uploadmodalInstance.cancel()" type="button" class="btn btn-default">Cancel</button>
                <button ng-click="uploadmodalInstance.create()" type="button" class="btn btn-primary">Upload</button>
            </div>
        </form>
        <!--form action="/upload/attachment" method="post" enctype="multipart/form-data">
            <div class="form-group">
                <input type="file" name="jar" class="form-control">
            </div>
            <br>
            <button type="submit" class="btn btn-default">Upload Document</button>
        </form -->
</script>
corda
1个回答
0
投票

所以请记住,附件在新版Corda中的工作方式是不同的。

我在这里引用文档中关于如何使用corda附件的答案。

要添加附件,必须先将文件上传到节点,节点返回一个唯一的ID,可以使用TransactionBuilder.addAttachment()来添加。附件可以通过RPC和Corda Node shell上传和下载。

https:/docs.corda.netdocscorda-os4.4tutorial-attachments.html)。

© www.soinside.com 2019 - 2024. All rights reserved.