0

私はこのタスクを実行しようとしましたが、成功できませんでした。「C:\ apache-tomcat-6.0.33 \ work」に保存できるファイルをアップロードできますが、データベースにパスを保存する方法がわかりません。これが私のコードです。

package com.rajesh.action;

import java.io.File;
import org.apache.commons.io.FileUtils;
import java.io.IOException; 

import com.opensymphony.xwork2.ActionSupport;

public class UploadFile extends ActionSupport{
private File myFile;
private String myFileContentType;
private String myFileFileName;
private String destPath;

public String execute()
{
/* Copy file to a safe location */
destPath = "C:/apache-tomcat-7.0.37/upload";

try{
System.out.println("Src File name: " + myFile);
System.out.println("Dst File name: " + myFileFileName);

File destFile  = new File(destPath, myFileFileName);
FileUtils.copyFile(myFile, destFile);

}catch(IOException e){
e.printStackTrace();
return ERROR;
}

return SUCCESS;
}

public File getMyFile() {
  return myFile;
}
public void setMyFile(File myFile) {
  this.myFile = myFile;
}
public String getMyFileContentType() {
  return myFileContentType;
}
public void setMyFileContentType(String myFileContentType) {
  this.myFileContentType = myFileContentType;
}
public String getMyFileFileName() {
  return myFileFileName;
}
public void setMyFileFileName(String myFileFileName) {
  this.myFileFileName = myFileFileName;
}
}

これがファイルをアップロードするための私のjspです。

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Struts 2 - Login Application | ViralPatel.net</title>
</head>

<body>
<h2>Struts 2 - Login Application</h2>
<s:actionerror />
<s:form action="login" method="post">
<s:textfield name="username" key="label.username" size="20" />
<s:password name="password" key="label.password" size="20" />
<s:submit method="execute" key="label.login" align="center" />
</s:form>
</body>
</html>

これが私のstruts.xmlです

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.multipart.maxSize" value="1000000" />
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources"
value="ApplicationResources" />

<package name="default" extends="struts-default" namespace="/">
<action name="login" class="com.rajesh.action.LoginAction">
<result name="success">admin.jsp</result>
<result name="error">loginstruts.jsp</result>
</action>
<action name="upload" class="com.rajesh.action.UploadFile">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>

私を助けてください、私はこのstruts2の新しいです、どんな助けでも大いに感謝されます。

4

1 に答える 1

1

ファイルを宛先パスにアップロードした後、アクションにデータベース ロジックを書き込むか、DAO クラスを作成してデータベースに接続し、それにレコードを挿入して、そのクラスを struts アクションで使用できます。コードのこの行の後にデータベース接続コードを配置する必要があります。 .

FileUtils.copyFile(myFile, destFile);

サンプルコード:

//To be write after above line in your action class
String filePathToStoreInDB = destPath+"\\"+myFileFileName;
MyDAO myDAO = new MyDAO();
String result = myDAO.insertRecord(filePathToStoreInDB);
if(result.equals("success")){
//proceed your logic
}else{
//your logic to display errro message
}

//logic in DAO class to insert record
public class MyDAO{
//Your code to insert record in database
return "success"; //if record inserted successfully
retrun "fail"; //if record failed to insert
}
}

注:Varchar2またはVarcharは要件に応じて異なるため、データベースの列タイプを使用できます。

于 2014-01-03T06:19:57.417 に答える