2016-12-31 8 views
2

でいくつかのデータとともに、ファイル、プロセスデータをアップロードし、DB私は定義されたそれのためのフォームを作成している私は、ストラットのフォームを通じて、いくつかのデータとともに、画像ファイルをアップロードするストラット

でそのイメージを保存しますstruts.xmlファイルにファイルをアップロードするアクションですが、コントロールがJavaメソッドになると、ファイルタイプ変数でnullが返されますので、助けてください。

struts.xmlのコード:アクションにデータを送信するために使用

<action name="uploadFile" class="org.ui.LogActivityAction" 
     method="uploadFile"> 
     <interceptor-ref name="fileUpload"> 
      <param name="fileUpload.maximumSize">10485760</param> 
      <param name="fileUpload.allowedTypes">text/plain,image/jpg</param> 
     </interceptor-ref> 
     <interceptor-ref name="defaultStack"/> 
     <result name="success">/user/activity/upload-card.jsp</result> 
     <result name="error">/user/activity/upload-card.jsp</result> 
    </action> 

はAJAX:この貫通

function saveSalesUserActivity(card) { 
    var isValidForm = jQuery('#dailyActivity').valid(); 
    isValidForm = jQuery('#dailyActivity').valid(); 
    if (!isValidForm) { 
     return; 
    } 
    if (isValidForm) { 
     jQuery.blockUI({ 
      message: "<strong>" + messages("mis.common.wait") + "</strong>" 
     }); 
     jQuery.ajax({ 
      type: "POST", 
      url: "/sales/user/logactivity/saveactivity.action?businessCard=" + card, 
      data: jQuery('#dailyActivity').serialize(), 
      success: function(response) { 
       jQuery("#miscontent").html(response); 
      }, 
      error: function(response) { 
       jQuery("#miscontent").html(response); 
      } 
     }); 
     jQuery.unblockUI(); 
    } 
    jQuery.unblockUI(); 
} 

Javaメソッドに達し、私はファイルの型変数の値を取得しておりません(ここでは「名刺」を使用しています)。 誰でも手助けします。

+0

入力フィールドにはいくつかのデータが入力されます。 –

答えて

1

jQuery('#dailyActivity').serialize()
それはそれは<input type'file'>
のために働いていませんが、このjsFiddleを見ていると、

を動作し、ファイルからこの1 .serialize()

データは、要素を選択しないシリアライズさではありません。

あなたはこの

var formData = new FormData($('form')[0]); 

はあなたが

FORMDATAのための作業のコードを使用する必要がjQueryのを使用してファイルをアップロードするためのこのhttps://stackoverflow.com/a/8758614/3425489

0

を見てください試してみたいことがあり<input type'file'>を送信するにはファイルのアップロードが以下のとおりです

$(document).on('click', '#upload', function(e) { 
 
      e.preventDefault(); 
 
     var fd = new FormData(); 
 
     var file = $('#my_file')[0].files[0]; 
 
     fd.append('file', file); 
 
     fd.append('userId', $('#userid').val()); 
 
     console.log("hi"); 
 
     $.ajax({ 
 
      url: 'UploadPic', 
 
      data: fd, 
 
      type: "POST", 
 
      contentType: false, 
 
      processData: false, 
 
      success: function(dd) { 
 
      alert("sucessfully Uploaded") 
 
      } 
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="file" id="my_file"> 
 
<input type="hidden" id="userid" /> 
 
<input type="button" id="upload" value="Upload" />

関連する問題