0
我试图从一些例子,从stackoverflow和一些博客。 但我无法上传文件。使用FormData和jQuery.ajax上传文件
我有一个这样的形式:
<form enctype="multipart/form-data">
<input type="hidden" id="viewport" name="viewport" value="1">
<input type="hidden" id="idinfo" name="idinfo" value="-1">
<input type="file" id="filename" name="filename" value="">
<select id="cbTipe" name="cbTipe" onchange="ChangeType()">
<option value="1">Text</option>
<option value="2">Text & Foto</option>
<option value="8">Video</option>
</select>
<button type="button" name="btnClear" onclick="ClearForm();">Bersihkan Form</button>
<button type="button" name="btnSimpan" onclick="SubmitForm();">Simpan</button>
</form>
和JavaScript这样的代码:
function SubmitForm()
{
data = $("form input").serialize();
aFormData = new FormData($("form *"));
aFormData.append("filename", data[2]);
$("form input").each(
function(i)
{
aFormData.append($(this).attr("name"), $(this).attr("value"));
}
);
$("form select").each(
function(i)
{
aFormData.append($(this).attr("name"), $(this).attr("value"));
}
);
$.ajax(
{
url : the_url + "/form_action",
type : "POST",
contentType : false,
processData : false,
data : aFormData,
dataType : "json",
success :
function(data)
{
if(data['status'] == 'ok')
{
RefreshList(data['html'])
}
else
{
alert("Error on FormAction")
}
ClearForm();
}
}
);
}
而且一个Grails这样的代码:
def test = request.getFile('filename').getName()
的问题是,我始终未能得到
request.getFile('filename').getName()
request.getFile('filename')返回null。
我在这里错过了什么?
阿伦,感谢您的回答。现在我可以上传文件。 – fasisi
Arun,如果webapp部署在Windows上,我可以上传文件。但是在Ubuntu上部署webapp时失败了。它应该被区别对待吗? – fasisi
不是真的......但我没有任何Grails经验......所以不能评论这个......只要客户端代码被认为是它,服务器真的不应该有什么 –