2012-01-25 14 views
2

Spring 3.0でAjaxを使ってファイルをアップロードするには、どの方法が最も簡単ですか?
ファイルを含むAjaxフォームを提出したいと考えています.Alsoソリューションは、UploadifyのようにFlashなどに依存してはいけません。私はJquery form pluginを試しましたが、それを動作させることができませんでした。詳細はprevious questionを確認してください。Spring 3.0のAjaxでのファイルアップロード

ありがとうございます!


EDIT:私は、ファイルが含まれていますどのAjaxを介してフォームを送信します。サーバー側では、モデル属性で収集したいと思います。

答えて

0

が必要になります。しかし、ファイルが選択されるとすぐにコントローラを呼び出します。

0

私は最近、Dojo Iframesを使用してこれを行いました。ここではそのためのコードがあります(「(submitFormを返す);」アクション=から、それを呼び出す必要がありformタグから):サーバー側で

submitForm = function() { 
dojo.io.iframe.send({ 
    url : "/uploadForm", 
    form : "html_form_id", 
    method : "POST", 
    handleAs : 'text', 
    load : function(response, ioArgs) { 
      //handle your response here... 
      return response; 
    }, 
    error : function(response, ioArgs) { 
     if (ioArgs.xhr.status != 0) { 
      try { 
       //handle error here 
      } catch (e5) { 
      } 
     } 
     return response; 
    } 
}); 
return false; 
} 

、あなたの春コントローラでは、あなたがこれを処理するだろうとして:

@RequestMapping(method = RequestMethod.POST, value = "/uploadForm") 
    public ModelAndView onSubmit(
      @RequestParam("file") MultipartFile multipartFile, 
     final HttpServletResponse response) 
     throws Exception 
    { 

     String fileName=""; 
     if(multipartFile!=null) 
     { 
        fileName = multipartFile.getOriginalFilename(); 
     } 

     //file inputstream can be accessed as multipartFile.getInputStream() 

     String resultCode = "0"; 

     final String responseHTML = "<html><head></head><body><textarea>" + resultCode + "</textarea></body></html>"; 
     response.setContentType("text/html"); 

     final OutputStream responseStream = response.getOutputStream(); 
     responseStream.write(responseHTML.getBytes()); 
     responseStream.write("\r\n".getBytes()); 
     responseStream.close(); 
    } 

(処理関数は@RequestParam(「ファイル」)言うように)あなたは、「ファイル」としてあなたのファイルタイプの入力パラメータに名前を付けるために、それは働いたAjax uploadを使用し

+0

感謝をうまく働いた.... malsupのjqueryのフォームプラグインを試してみましたタイプのファイルのフィールドを持つフォームを送信します。だから私はモデルの属性の内部にファイルを収集したい。 – xyz

+0

はい。

を作成し、input type = "file"という名前をファイルとして指定すると、これは機能するはずです。 – rogermenezes

+0

@rogermenezes jsp、 –

0

は、あなたはそれがあなたのsuggestion.Iのために私のために

http://malsup.com/jquery/form/ 
+0

で完全な作業サンプルを投稿してもらえますかはい、試しました。私の質問に進みます。私はそれに関するリンクを追加しました。 – xyz

関連する問題