2017-04-24 13 views
1

私はまだこの質問の回答を得ることができません。誰も私にこの問題を助けてくれますか?cakephp 2.0パラメータを使用したjQuery Ajaxを使用したアップロードファイル - 依然として回答が得られません

私は選択した人に添付ファイル付きのメールを送信しようとしています。だから、私はデータベースからデータをフィルタリングし、選択したユーザーに添付ファイル付きの電子メールを送信しました。

私は以下の回答を介して行っています

<script type="text/javascript"> 
function SendEmail(){ 
    var checked=0; 
    jQuery("#action_row").val('delete'); 
    var filename = jQuery("#UserPdf").val(); 
    var audits = ''; 
    $('.checkboxes:checked').each(function(){ 
    checked=1;   
    audits += this.value+','; 
    }); 
var auditsval = audits.slice(0, -1); 
    //alert(auditsval); 
    if(checked==1){ 
     var con = confirm('Are you sure you want to send email?'); 
     if(con){ 
      jQuery.ajax({ 
      type: "POST", 
      url: CommanPath.basePath+'admin/users/send_email', 
      enctype: 'multipart/form-data', 
      data: { 
       file: filename, 
       ids: auditsval, 
      }, 
      success: function (data) { 
       alert("Email sent to selected users "); 
      } 
     }); 
     } 

    }else{ 
    alert("Please select atleast one to send email"); 
    } 

} 
</script> 

UsersCOntroller.php

:私はjQueryの、アヤックス、コントローラのアクションの以下のコードを試してみました

How can I upload files asynchronously?

public function admin_send_email($id = null){ 
    //echo 'here'; die; 

    $this->layout = 'ajax'; 
    echo '<pre>'; print_r($_FILES); die; 

    if(isset($this->params['data']['file']) && $this->params['data']['file']){ 

     $filename = time().$this->params['data']['file']; 
     move_uploaded_file($_FILES['data']['tmp_name']['file']['name'], WWW_ROOT.'uploads/sellingtools/' . $filename); 
    } 
    $userids = explode(",", $this->params['data']['ids']); 
    echo '<pre>'; print_r($userids); die; 
} 

アップロードしたファイル名を取得しようとしているときに、ファイル名がtmp_nameにならないようになっています。

誰でも私にtmp_nameを取得し、ファイルを正確なパスに移動させる方法を教えてください。

助けてください。

答えて

0

フォームを使用する必要があるとFormData

以下のようにHTML:

<form id="myForm" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file"> 
</form> 

のjQuery:あなたの答えのための

function SendEmail(){ 
    var checked=0; 
    jQuery("#action_row").val('delete'); 
    var filename = jQuery("#UserPdf").val(); 
    var audits = '';  
    $('.checkboxes:checked').each(function(){ 
    checked=1;   
    audits += this.value+','; 
    }); 
    var auditsval = audits.slice(0, -1); 
    //alert(auditsval); 

    var formdata = new FormData($('#myForm')[0]); /////formdata object 
    formdata.append('ids',auditsval); /// add additional fields 

    if(checked==1){ 
     var con = confirm('Are you sure you want to send email?'); 
     if(con){ 
      jQuery.ajax({ 
      type: "POST", 
      url: CommanPath.basePath+'admin/users/send_email', 
      processData: false, ///required to upload file 
      contentType: false, /// required 
      data: formdata,  /// send form data 
      success: function (data) { 
       alert("Email sent to selected users "); 
      } 
     }); 
     } 

    }else{ 
    alert("Please select atleast one to send email"); 
    } 

} 
+0

おかげで、私はこれをしようとすると、あなたを更新します。 – mageDev0688

関連する問題