使用HTML表单同时提交数据和文件

使用HTML表单同时提交数据和文件,html,Html,我试图获得一些用户输入,同时也让用户上传一个文件。这能做到吗?我在下面发布我的HTML文件内容。问题是enctype参数。当设置为multipart/form data时,它不接受常用的文本字段。如果移除,它会工作 HTML格式: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <h

我试图获得一些用户输入,同时也让用户上传一个文件。这能做到吗?我在下面发布我的HTML文件内容。问题是enctype参数。当设置为multipart/form data时,它不接受常用的文本字段。如果移除,它会工作

HTML格式:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UI_Automation</title>
</head>
<body>
<form action = "DataBridge" method = "POST" ><!-- enctype = "multipart/form-data" -->
    Select area for automation :
    <select id="section" name = "section_select">
            <option value = "Section1" selected>UPI</option>
            <option value = "Section2">Bank</option>
    </select> 
    Select OS Type :
    <select id="os" name = "os_select">
            <option value = "Android" selected>Android</option>
            <option value = "iOS">iOS</option>
    </select>
<!--    <h2>Upload Test cases:</h2>
    Select an Excel file to upload: <br />
    <input type = "file" id="testcase" name = "file" size = "50" />
    <br /> -->
    <input type = "submit" value = "Submit" />
</form>
</body>
</html>
这很容易

在HTML中

<form id="applyform" method="POST">
    <label>Name</label>
    <input class="form-control" type="text" name="name" placeholder="Enter your name" id="c_name" required>
    Attach your resume:&nbsp;
    <input type="file" name="resume" id="resume" accept="application/pdf,application/vnd.ms-excel">
    
    <button type="submit" class="btn btn-info2 btn-footer">Submit</button>
</form>
好处:限制文件上传大小

var uploadField = document.getElementById("resume");
        uploadField.onchange = function () {
            if (this.files[0].size > 2097152) {
                Toast("File must be less than 2mb!");
                this.value = "";
            };
        };

是,取消对enctype和file type字段的注释。您的服务器需要能够处理多个部分,我已经参考了这个答案,但我不想使用JavaScript。纯粹是个人原因。还有别的办法吗?我使用一个servlet类来读取这个数据,这里没有特别的理由使用AJAX。只需要弄清楚如何在服务器上接收数据。如果您使用AJAX处理表单内容,那么就不需要使用EncTypeAweasome,我会立即更改它。
var uploadField = document.getElementById("resume");
        uploadField.onchange = function () {
            if (this.files[0].size > 2097152) {
                Toast("File must be less than 2mb!");
                this.value = "";
            };
        };