<select multiple =“”>和enctype =&#34; multipart / form-data&#34; </select>

时间:2014-12-22 19:34:10

标签: html asp-classic multipartform-data enctype

我想知道是否可以同时使用enctype =&#34; multipart / form-data&#34;和一个选择倍数。这是演习:

我有这个html文件(test.html):

<form action="action.asp" method="post" enctype="multipart/form-data" name="form1">

    <select multiple name="prof">

        <option value="1">First</option>
        <option value="2">Second</option>
        <option value="3">Third</option>

    </select>

    <input type="submit" value="Ok" name="Ok">  

</form>

当我在列表中选择任何这些选项时,我的操作页面都没有显示任何内容(action.asp):

<%

dim prof

prof = request.form("prof")

response.write prof 

%>     

但是如果我删除了enctype =&#34; multipart / form-data&#34;在test.html中,它可以工作。

问题是我使用的是需要此enctype =&#34; multipart / form-data&#34;的asp上传文件组件。任何sugestions?

提前致谢。

2 个答案:

答案 0 :(得分:1)

最后在FileUploader类上发现了一个bug。如果<select multiple>元素的集合中已存在mcolFormElem Dictionary变量,则不会添加名称/值对,我已添加以下代码并正常工作。

If Not mcolFormElem.Exists(LCase(sInputName)) Then 
                mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
            else
                dim tempKeyVal
                tempKeyVal=mcolFormElem.item(LCase(sInputName))
                mcolFormElem.Remove(LCase(sInputName))
                mcolFormElem.Add LCase(sInputName), tempKeyVal&","&CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
            end if

答案 1 :(得分:0)

如果你使用enctype =&#34; multipart / form-data&#34;一定是因为你上传了一个文件。如果您上传了一个文件,那么您应该使用上传组件:

  

设置yourUploadComponent =   的CreateObject(&#34; Your.UploadComponentClassString&#34)
  sFormValue = yourUploadComponent.Form.Item(&#34; prof&#34;)。值