0

こんにちは、私は従業員ディレクトリを作成しています。そのフォームで従業員の写真をアップロードしたいのですが、画像を保存しようとすると 、画像アップロードのロジックを削除してからデータベース内の他のデータストアを正常に削除すると、ポートレットが一時的に利用できないなどのエラーが発生しました。画像パスをデータベースに保存する方法を教えてください。/webappsにimages フォルダーを作成しました。すべての画像をこのフォルダーに保存し、画像パスをデータベースに保存したいと考えています。画像パスを保存する方法と、画像パスを保存した後に他のページに画像を表示する方法を教えてください。

ここで、ロジックを記述した Java コードを提供します。パッケージcom.dir;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import com.liferay.portal.kernel.exception.SystemException;
import com.dir.model.directory;
import com.dir.model.impl.directoryImpl;
import com.dir.service.directoryLocalServiceUtil;
import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.portal.kernel.upload.UploadPortletRequest;
import com.liferay.portal.kernel.util.FileUtil;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;


  public class Directory extends MVCPortlet {

public void updatedir(ActionRequest actionRequest,ActionResponse  
 actionResponse)throws IOException, PortletException
        {
String empname =ParamUtil.getString(actionRequest,"empname");
    String designation =ParamUtil.getString(actionRequest,"designation");
String qualification =ParamUtil.getString(actionRequest,"qualification");
    String email =ParamUtil.getString(actionRequest,"email");
String photo=ParamUtil.getString(actionRequest,"photo");
String company =ParamUtil.getString(actionRequest,"company");
int experiance=ParamUtil.getInteger(actionRequest,"experiance");

directory d1 = new directoryImpl();

// set primary key
long directoryId=0L;
try
{

     directoryId=CounterLocalServiceUtil.increment(this.getClass().getName());
} 
catch (SystemException ex)
{
    ex.printStackTrace();
}
   d1.setDirectoryId(directoryId);

        // set UI fields
        d1.setEmpname(empname);
        d1.setDesignation(designation);
        d1.setQualification(qualification);
        d1.setEmail(email);
        d1.setPhoto(photo);
        d1.setCompany(company);
        d1.setExperiance(experiance);

    File file;

        UploadPortletRequestupreq=PortalUtil.getUploadPortletRequest(actionRequest);
    file=upreq.getFile(photo);

    Stringpath=actionRequest.getPortletSession().getPortletContext().getRealPath(photo) 
     + "//" + ("/images");

        File fileone= new File(path);
        FileUtil.copyDirectory(file,fileone);

        // set audit field(s)
        d1.setDateAdded(new Date());

        // insert the book using persistence api
        try {

        directoryLocalServiceUtil.adddirectory(d1);
        } catch (SystemException e) {
        e.printStackTrace();
        }


        }


      }

ここで、写真をアップロードした場所からJspファイルを提供しています。

   <aui:form name="fm" method="POST" action="<%= updatedirURL.toString() %>"   
    enctype="multipart/form-data">

  <aui:input name="empname" label="Name"/>

 <aui:input name="designation" label="Designation"/>
 <aui:input name="qualification" label="Qualification"/>

 <aui:input name="email" label="Email"/>

 <aui:input type="file" label="Photo" name="photo"/>

 <aui:input name="company" label="Company"/>

 <aui:input name="experiance" label="Experiance"/>

 <aui:button type="submit" value="Save"/>
 </aui:form>

私が間違っているところと、必要なものが欠けているところを親切に助けてください。また、そのフォルダのデータを表示する方法も教えてください。

4

1 に答える 1

0

ファイルに関するこのチュートリアルを表示します(ファイルは任意のタイプである可能性があります)mysqlを使用して読み取り/書き込みを行うと、Ttが大いに役立ちます..
応援...

于 2013-04-11T06:41:09.867 に答える