我的 form1 看起来像这样,
<form method="post" id="myform" name="myform" action="upload" enctype="multipart/form-data">
<div id="elements">
<ul id="ul">
<li>Left File : <input type="file" name="dataFile1" id="fileChooser1" /></li><li><br></li>
<li>Right File : <input type="file" name="dataFile2" id="fileChooser2" /></li><li><br></li>
<li>Runner.xlsx : <input type="file" name="dataFile3" id="fileChooser3" /></li><li><br></li>
<li><button type="button" id="execute" onclick="ValidateFile()">Click to Upload files</button></li>
</ul>
</div>
</form>
我已经宣布了这样的功能向表单中添加隐藏数据,
function addHidden(theForm, key, value) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = value;
theForm.appendChild(input);
}
验证文件() 中的
var myDivText1 = ace.edit("editor").getValue();
var theForm = document.forms['myform'];
addHidden(theForm, 'mytxt1', myDivText1);
alert(myDivText1);
document.myform.submit();
在我的 upload.java servlet中,
if (itemField.equals("dataFile1"))
{ //get the text of the editor here and save it
String TEXT = request.getAttribute("mytxt1").toString();//this is being displayed as null
System.out.println(TEXT);
File uploadedFile = new File(fpath, fileName);
item.write(uploadedFile);
String f1 = "<span class='blue'>" + "Uploaded <b>left file</b> " +fileName+ "<br>" + "</span>";
request.setAttribute("f1stat", f1);
}
当我的Javascript函数中的警报显示正确的值时,当我尝试在 upload.java servlet中访问它时,它显示一个空值。
我已将此功能用于另一种形式,也就是它在传递所需数据时失败了,我的错误是什么?
我尝试将getAttribute
更改为getParameter
仍然获得空值。
答案 0 :(得分:2)
我认为您应该使用request.getParameter("mytxt1")
代替request.getAttribute("mytxt1")
。
答案 1 :(得分:0)
String TEXT = request.getAttribute("mytxt1").toString();
显示为null,因为您没有设置任何名为“mytxt1”的属性。
你应该使用
request.getParameter("mytxt1");
因为你试图从一个带有一些名称变量的表单中获取某些内容。
答案 2 :(得分:0)
因为您的enctype是&#34; multipart / form-data&#34;,您无法通过使用request.getParameter(&#34; mytxt1&#34;)获得任何内容,您可以尝试使用apache fileupload组件