0

Hallo私はなんとかファイルをアップロードする機会を与えるフォームを作成することができます。コードは次のとおりです。

applicationContext.xml:

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- one of the properties available; the maximum file size in bytes -->
    <property name="maxUploadSize" value="100000"/>
 </bean>

フォーム:

 <%@page contentType="text/html;charset=UTF-8" %>
 <%@page pageEncoding="UTF-8" %>
 <%@ page session="false" %>
 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<html>
 <head>
     <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Upload Example</title>
 </head>
 <body>
    <form:form modelAttribute="uploadItem" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>Upload Fields</legend>

            <p>
                <form:label for="name" path="name">Name</form:label><br/>
                <form:input path="name"/>
            </p>

            <p>
                <form:label for="fileData" path="fileData">File</form:label><br/>
                <form:input path="fileData" type="file"/>
            </p>

            <p>
                <input type="submit" />
            </p>

        </fieldset>
    </form:form>
  </body>
</html>

モデル:

public class UploadItem
{
private String name;
private CommonsMultipartFile fileData;

public String getName()
{
  return name;
}

public void setName(String name)
{
  this.name = name;
}

public CommonsMultipartFile getFileData()
{
  return fileData;
}

public void setFileData(CommonsMultipartFile fileData)
{
 this.fileData = fileData;
}

}

コントローラ:

@Controller
@RequestMapping(value = "/upload")
public class UploadController
{
@RequestMapping(method = RequestMethod.GET)
public String getUploadForm(Model model)
{
  model.addAttribute(new UploadItem());
  return "upload/uploadForm";
}

@RequestMapping(method = RequestMethod.POST)
public String create(UploadItem uploadItem, BindingResult result)
{
if (result.hasErrors())
{
  for(ObjectError error : result.getAllErrors())
  {
    System.err.println("Error: " + error.getCode() +  " - " + error.getDefaultMessage());
  }
  return "upload/uploadForm";
}


return "redirect:/app/";

}}

今私の質問は、アップロードファイルをアプリケーションのフォルダに保存する方法です。テキストボックスでユーザーが付けた名前を名前として付けたいです。また、PDFファイルを抽出してブラウザで開くにはどうすればよいですか?既存のコードを追加する必要がありますか?これを行う方法がわかりません。助けてください

4

2 に答える 2

1

ファイルに別の名前を指定しても、既存のファイルは置き換えられません。ファイル名が同じ場合は、確実に置き換えられます。非常に明白です。

2 つ目は、 produces={"application/pdf"}を定義するときです。このコンテンツ タイプを持つ JSP ページも作成する必要があります。

于 2012-05-18T08:42:55.863 に答える
1

HttpServletRequest requestのようなコントローラー メソッドにパラメーターをもう 1 つ追加するだけです。

その後、以下の行でメソッドの実際のパスを取得する必要があります。

request.getServletContext().getRealPath("your directory name here"); 

アプリケーションのルート フォルダーにディレクトリを作成する必要があります。そして、上の行の名前を置き換えます。

次に、取得した実際のパスを使用して File オブジェクトを作成します。その後、下の行に書いてください。

uploadItem.getFileDate.transferTo(you file object created above);

これで完了です。これはあなたのために仕事をするべきだと思います。

お役に立てば幸いです。

乾杯。

于 2012-05-17T11:49:59.253 に答える