我一直試圖通過HTML中的表單加載文件並將其發送給Java以便處理它。我創建了一個JavaScript函數,所以我可以傳遞文件路徑,但它不會工作,因爲它只會發送文件的名稱和擴展名,所以Java只會得到一個字符串來處理並拋出一個NullPointerEception
。將文件傳遞給Java通過JavaScript
有沒有人有任何想法我可以如何解決這個問題?
PS:我很抱歉noobie的問題,但我不知道JS。
我一直試圖通過HTML中的表單加載文件並將其發送給Java以便處理它。我創建了一個JavaScript函數,所以我可以傳遞文件路徑,但它不會工作,因爲它只會發送文件的名稱和擴展名,所以Java只會得到一個字符串來處理並拋出一個NullPointerEception
。將文件傳遞給Java通過JavaScript
有沒有人有任何想法我可以如何解決這個問題?
PS:我很抱歉noobie的問題,但我不知道JS。
我想你轉發的Java文件是必須由輸入輸出操作中讀取字節怎麼一回事,因爲Java是通過理解字節數組只有文本文件或字節數組,你可以存儲任何圖像,PDF等
我正在使用Prototype框架 – Tatiana
「的內容類型「multipart/form-data」應該用於提交包含文件,非ASCII數據和二進制數據的表單。「
http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2
What does enctype='multipart/form-data' mean?
所以基本上它並不真正的問題是如何你提交的客戶端,<input type="submit" />
你的形式,一些Java腳本像document.forms["myform"].submit();
或不管您的JS庫這樣做,只要你在您的客戶端上有<input type="file" />
,並且有一些服務器端組件(如servlet)可以從請求中獲取提交的二進制文件。
爲電子商務真正全面的例子,說明看到這個帖子: How to upload files to server using JSP/Servlet?
我有一個普通的HTML形式是這樣的:
<form action="MultipartServlet" name="form" id="form" method="post" enctype="multipart/form-data">
<td><input type="file" name="upload" id="upload" />
<td><input type="button" value="Check" onclick="FileValidator.check()"/>
我不能使用類型=「提交」,因爲一個奇怪的原因應用程序被破碎
JS代碼:
check: function() {
var file = $F("upload");
new Ajax.Request('url', {
parameters: '...&action=fileValidator&upload=' + file,
onSuccess: function(response) {
var result = eval('(' + response.responseText + ')');
if (result.success) {
displayErrorsFromFile();
} else {
alert("Errors! " + response.responseText);
}
},
onFailure: reportError
})
}
在Java代碼中,我只是嘗試通過「upload」參數獲取文件並驗證文件的輸入。
,所以我猜測,「上載」參數必須得到整個文件的叮咬陣列以便它可以處理它...或以某種方式文件
我想如果你澄清它將幫助的路徑是什麼你正在使用的JS框架,你正在使用什麼Java框架,它在哪裏託管,你正在使用什麼文件上傳控制等等。不要害羞地張貼源代碼:-) –
你是使用平面servlet還是一些框架服務器端 ? – Santosh
@ user1163293:你的代碼請...還提到例外,如果你越來越...也讓我們知道你在哪個代碼面臨的問題... –