ASP页未接收POST参数

ASP页未接收POST参数,post,asp-classic,parameters,input,forms,Post,Asp Classic,Parameters,Input,Forms,我正在用经典的ASP编写一个小应用程序。我有一个页面,它有一个表单,可以发布到第二个页面。表单的POST中包含文件上载,因此需要POST方法 但第二个页面没有看到第一个页面发送的任何字段。调用Request(“param”)或Request.Form(“param”)都只返回空字符串 如果我将表单上的方法从POST切换到GET(使用无其他更改),则接收页面会正确拾取值,当然,我无法进行文件上载,这是此应用程序的关键部分 在GET模式下,所有参数都按预期放置在url上。在POST模式下,我启动了F

我正在用经典的ASP编写一个小应用程序。我有一个页面,它有一个表单,可以发布到第二个页面。表单的POST中包含文件上载,因此需要POST方法

但第二个页面没有看到第一个页面发送的任何字段。调用
Request(“param”)
Request.Form(“param”)
都只返回空字符串

如果我将表单上的方法从POST切换到GET(使用其他更改),则接收页面会正确拾取值,当然,我无法进行文件上载,这是此应用程序的关键部分

在GET模式下,所有参数都按预期放置在url上。在POST模式下,我启动了FireBug,并检查了我请求的POST数据。原始表单正在发送请求中的所有值(它们会按预期显示在FireBug中),因此问题似乎出现在接收页面的末尾

表单是通过代码提交的,通过按钮调用
onclick=“javascript:saveMinutes();”

My form和saveMinutes()函数声明如下:

<form id="frmMinutes" enctype="multipart/form-data" method="post" action="saveminutes.asp">
<table id="tblMinutes" style="width: 100%;">
    <tr>
        <td>
            <select id="selYear" name="year" size="13" onclick="javascript:setDatePickerRange(); checkForMinutes();">
                <%For lc = Year(Now) To getMinutesFirstYear() Step - 1%>
                    <option value="<%=lc%>" <%If lc = Year(Now) Then%>selected="selected"<%End If%>><%=lc%></option>
                <%Next%>
            </select>
        </td>
        <td>
            <select id="selMonth" name="month" size="13" onclick="javascript:setDatePickerRange(); checkForMinutes();">
                <%For lc = 1 To 12%>
                    <option value="<%=lc%>" <%If lc = Month(Now) Then%>selected="selected"<%End If%>"><%=MonthName(lc)%></option>
                <%Next%>
            </select>
        </td>
        <td style="width: 100%; padding-left: 20px;">
                <table id="enterMinutes" style="width: 100%">
                    <tr>
                        <th>Topic:</th>
                        <td><input id="topic" name="topic" type="text" maxlength="100" field="topic" /></td>
                    </tr>
                     <tr>
                        <th>Presenter:</th>
                        <td><input id="presenter" name="presenter" type="text" maxlength="100" field="presenter" /></td>
                    </tr>
                     <tr>
                        <th>Date:</th>
                        <td><input id="mtgdate" name="mtgdate" type="text" maxlength="10" class="datepick" field="mtgdate" readonly="readonly" /></td>
                    </tr>
                     <tr>
                        <th style="vertical-align: top;">Files:</th>
                        <td style="text-align: left;">
                            <input id="file0" name="file0" type="file" size="35" /><span class="redEmphasis" style="margin: 0px 10px 0px 10px;">(.doc or .docx)</span><input type="button" value="+" onclick="javascript:addFileUpload();" />
                        </td>
                    </tr>
                     <tr>
                        <th style="vertical-align: top;"></th>
                        <td style="text-align: left; padding: 10px 0px 10px 0px;">
                            <input type="button" style="width: 100%" value="update minutes" onclick="javascript:saveMinutes();" />
                        </td>
                    </tr>
               </table>
               <span id="warnexist" class="redEmphasis" style="display: none;">The selected month already has associated minutes (). doc files take precedence over docx.</span>
        </td>
    </tr>
</table>
</form>


当from被编码为multipart时,不能将POST值作为普通的旧参数。它们只是多部分表单的附加部分

要在ASP中检索上载的文件,通常必须循环浏览各个部分,并检查每个部分是否为文件(如果为文件,则保存)。要获取字段值,您必须添加到该循环中,以检查每个部分是否具有某个字段值的名称,然后检索该值。这在纯ASP代码中是一件很痛苦的事情,因此许多人使用某种类型的文件上载组件,在这种情况下,字段值的检索将取决于该组件


但基本的信息是:无论您对表单进行何种解析以检索文件,您都必须执行相同的操作来检索字段值

当from编码为多部分时,无法将POST值作为普通旧参数获取。它们只是多部分表单的附加部分

要在ASP中检索上载的文件,通常必须循环浏览各个部分,并检查每个部分是否为文件(如果为文件,则保存)。要获取字段值,您必须添加到该循环中,以检查每个部分是否具有某个字段值的名称,然后检索该值。这在纯ASP代码中是一件很痛苦的事情,因此许多人使用某种类型的文件上载组件,在这种情况下,字段值的检索将取决于该组件


但基本的信息是:无论您对表单进行何种解析以检索文件,您都必须执行相同的操作来检索字段值

如果你发布了你用来提取上传文件的代码,这将比你在这里看到的更有用。谢谢。我一直在使用justrequest(“param”),我完全忘记了还需要解析/解码的普通参数。我下载了一个用于文件的类,只是没有意识到我还需要将它用于普通输入参数。如果你发布用于提取上传文件的代码,这将比你在这里看到的更有用。谢谢。我一直在使用justrequest(“param”),我完全忘记了还需要解析/解码的普通参数。我下载了一个用于文件的类,只是没有意识到我还需要用于普通输入参数。
function saveMinutes() {
    if($('form#frmMinutes input[type=text]').filter(function () { return $(this).val() == '' }).length > 0) {
        alert('Please enter all fields.');
        return;
    }

    if ($('form#frmMinutes input#file0').filter(function () { return !$(this).val().match(/.*\.docx?$/i) }).length > 0) {
        alert('First file must be doc or docx.');
        return;
    }

    $('form#frmMinutes input[type=file]').filter(function () { return $(this).val() == '' }).next().remove();
    $('form#frmMinutes input[type=file]').filter(function () { return $(this).val() == '' }).remove();

    removeDupeFiles();

    // reindex file inputs after removing emptys/dupes
    var fs = $('form#frmMinutes input[type=file]:gt(0)');
    for (lc = 1; lc <= fs.length;  lc++) {
        var fid = 'file' + new String(lc);
        $(fs[lc-1]).attr('id', fid).attr('name', fid);
    }

    $('form#frmMinutes')[0].submit();
}