form标签multipart/form-data 文件上传表单中 传递参数无法获取的原因!

JAVA后台获取不到form表单提交值的情况

可能的原因:

1、提交元素的name与获取的name不符--request.getParameter(name)

2、传递的值为空

3、form没有嵌套input

4、form加了enctype="multipart/form-data"属性

其中第4种可能的情况主要是是因为在使用multipart/form-data属性之后请求体发生了变化。不是key=value的形式出现了,所以说获取不到。 


解决办法: 

(1)我们可以通过js代码来些修改,把我们的参数追加在url的后边。

<div>
    <div class="bjui-searchBar">
        <span style="font-size: 14px; padding: 3px;font-weight: 300"> 文件名称: </span>
        <input type="text" class="input-nm" value=" ${staticResourceFile.fileName!}" readonly size="50" data-rule="required;length(1~128)">
    </div>
    <div class="bjui-searchBar">
        <span style="font-size: 14px; padding: 3px;font-weight: 300"> 当前目录: </span>

        <form action="${ctxPath}/staticResource/upload" name="upload" enctype="multipart/form-data" method="post">
            <input type="text" name="currentPath" class="input-nm" value="${staticResourceFile.parentPath!}" size="50" data-rule="required;length(1~128)">
            <input type="file" name="file">
            <input type="submit" name="上传">
        </form>
        <span>当前支持格式为:jpg,png,css,js,mp4(50M以内)</span>
    </div>
</div>

<script src="/www/xgwy/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
    function formSubmit(){
        var action = "${ctxPath}/staticResource/upload";
        action += "?currentPath="+document.upload.currentPath.value;
        document.upload.action = action;
        document.upload.submit();
    }
</script>

(2)通过修改服务器端代码。前提是利用jar包。 

代码后续再加上。

原文地址:https://www.cnblogs.com/no8g/p/13415591.html