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經驗......所以不能評論這個......只要客戶端代碼被認爲是它,服務器真的不應該有什麼 –