ファイルブラウザからファイルを選択する際にjquery-ajaxを使用して、jspからmysqlデータベースにファイルをアップロードするためのコードを作成しました。ファイルを選択すると、JavaScript はファイルと ID をパラメーターとしてアクション クラスに渡しますが、アクション クラスでファイルの null 値を取得しています。
誰でもこの問題を解決する方法を教えてください。
index.jsp
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<script src="js/jquery-1.7.2.min.js"></script>
<script src="js/jquery-ui-1.8.21.custom.min.js"></script>
<script>
function filebrowse(toolid){
document.getElementById("toolidforimg").value=toolid;
$("#filetochange").trigger('click');
return false;
}
function changeFile(var3)
{
var param="filetochange="+(document.getElementById("filetochange").value)+"&toolidforimg="+document.getElementById("toolidforimg").value;
var resultStringX = $.ajax({
type: "POST",
url:"getFileChange.action",
enctype: 'multipart/form-data',
data: param,
async: false
}).responseText;
resultStringX=$.trim(resultStringX);
return false;
}
</script>
</head>
<body>
<s:hidden value="" name="toolidforimg" id="toolidforimg"/>
<a href="#" onclick="return filebrowse('1')" id="select_logo">Change File</a>
<input style="opacity:0;" type="file" onchange="changeFile(this.value)" id="filetochange" name="filetochange" >
</body>
</html>
struts.xml
<action name="getFileChange" class="com.MyactionClass" method="getFileChange">
<result name="success">browseFiles.jsp</result>
</action>
MyactionClass.java
class MyactionClass
{
File filetockhange;
String toolidforimg;
public File getFiletochange() {
return filetochange;
}
public void setFiletochange(File filetochange) {
this.filetochange = filetochange;
}
public String getToolidforimg() {
return toolidforimg;
}
public void setToolidforimg(String toolidforimg) {
this.toolidforimg = toolidforimg;
}
public String getFileChange()
{
HERE I AM GETTING filetochange VALUE AS NULL
return SUCCESS;
}
}