繁体   English   中英

尝试将文件上传到tomcat服务器时,连接不断重置

[英]Connection keeps getting reset when trying to upload file to tomcat server

我正在尝试创建一个人们可以在其中发布内容的网站。 目前,我正在尝试使用户可以依次添加文件并将其作为多部分请求发送到ajax中。 我必须重新登录服务器才能查看新文件。

HTML代码:

<form id="postForm" method="post" enctype="multipart/form-data">
                        <textarea name="text" rows="4" cols="" class="form-control" placeholder="What's Up" id="postTextarea"></textarea>
                        <div class="radio">
                            <label><input type="radio" name="privacy" value="restricted" checked>Restricted</label>
                            <label class="checkbox-inline"><input type="checkbox" name="group" value="family" class="group">Family</label>
                            <label class="checkbox-inline"><input type="checkbox" name="group" value="bestie" class="group">Besties</label>
                            <label class="checkbox-inline"><input type="checkbox" name="group" value="friend" class="group">Friends</label>
                        </div>
                        <div class="radio">
                            <label><input type="radio" name="privacy" value="public">Public</label>
                        </div>
                        <br>
                        <div id="fileContainer">

                        </div>
                        <div id="buttonContainer">
                            <label class="btn btn-default" id="fileUploadButton">
                                Add Files<input type="file" name="file" class="fileInput" hidden multiple>
                            </label>
                            <button class="btn btn-primary" id="postButton">Post</button>
                        </div>
                    </form>

JavaScript:

var submittedFileData = [] ;
$('.fileInput').on('change', function () {
        var files = $(this).prop('files') ;
        for (var i = 0; i < files.length; i++) {
            var p = document.createElement("p") ;
            $(p).text(files[i].name + " (Click here to remove file)") ;
            $(p).addClass("filename") ;
            $("#fileContainer").append(p) ;
            submittedFileData.push(files[i]);
        }
    });
$('#postButton').click(function () {
        var privacy = $( "input[type=radio][name=privacy]:checked" ).val();
        var formData = new FormData();
        //append privacy
        formData.append("privacy" , privacy) ;
        //append groups
        $( "input[type=checkbox][name=group]:checked" ).each(function(i) {
            formData.append("group" , $(this).val()) ;
        }) ;
        //append text
        formData.append("text" , $("#postTextarea").val()) ;
        //append files
        for (var i = 0; i < submittedFileData.length; i++) {
            formData.append("file" , submittedFileData[i]) ;
        }
        $.ajax({
            type: "POST",
            url: "post-upload",
            data: formData,
            processData: false,
            contentType: false,
            cache: false,
            async : false,
            success: function (data) {
            },
            error: function (jqXHR, textStatus, errorThrown) {
               alert(errorThrown) ;
            }
        });
        $.post("feed-view","relation="+activeTab ,getXMLResponse) ;
    });

Tomcat 9的server.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
           maxThreads="150" SSLEnabled="true"
            scheme="https"
       secure="true" maxPostSize="-1" disableUploadTimeout="false" connectionUploadTimeout="600000">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="C:/Users/Kathavarayan/.keystore"
            certificateKeystorePassword=""
                     type="RSA" />
    </SSLHostConfig>
</Connector>

很有可能没有任何代码错误,但这是服务器配置问题。

默认情况下,大多数服务器都设置为较小的超时和较小的上传大小限制。

这取决于您使用的服务器类型(nginx,Apache,Node / Express等)的默认设置以及如何配置它们,但这是我首先要研究的问题,如果您的连接正在重置或中断中载。

我终于发现了问题。 您可能不会相信这一点,但是在一天结束时,表单中的按钮仍然导致它被提交,从而导致整个过程混乱。 我要做的就是将type =“ button”添加到表单中的button元素。 现在,这阻止了表单的提交,仅使Ajax负责提交表单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM