2016-08-25 3 views
-2

私は重複した質問が多いことを知っていました。しかし、私は形式で配列を持つ複雑な形式でアップロードする方法を知らない。 enter image description here そして、このjqueryの:これは私のhtmlですファイルをアップロードするには複雑な入力フォームのjqueryとHTMLで

HTML::

<input id="pic" type="file" name="pic" /> 
<button id="upload">Upload</button> 

JS:

$('#upload').on('click', function() { 
     var file_data = $('#pic').prop('files')[0]; 
     var form_data = new FormData(); 
     form_data.append('file', file_data); 

     $.ajax({ 
       url   : 'upload.php',  // point to server-side PHP script 
       dataType : 'text',   // what to expect back from the PHP script, if anything 
       cache  : false, 
       contentType : false, 
       processData : false, 
       data  : form_data,       
       type  : 'post', 
       success  : function(output){ 
        alert(output);    // display response from the PHP script, if any 
       } 
     }); 
     $('#pic').val('');      /* Clear the file container */ 
    }); 

PHPの:

function saveDraft(){ 
     var scope = $('#scope').val(); 
     var secrecy = $('#secrecy').val(); 
     var priority = $('#prio').val(); 
     var cc = $('#cc').val(); 
     var subject = $('#form-field-subject').val(); 
     var msg = $('.wysiwyg-editor')[0].innerHTML; 
     var attachment = document.getElementById('attachment'); 
     var refnd = $('#refnd').val(); 
     var refarsip = $('#refarsip').val(); 
     var from = $('#from').val(); 
     var approval = []; 
     $('.approval :selected').each(function(i, selected){ 
      approval[i] = $(selected).val(); 
     }); 
     var receiver = []; 
     $('.for :selected').each(function(i, selected){ 
      receiver[i] = $(selected).val(); 
     }); 
     $.ajax({ 
      type: 'post', 
      url: '<?php echo $this->baseurl; ?>/memo/saveDraft', 
      data: { 
       scope : scope, 
       secrecy : secrecy, 
       priority : priority, 
       from : from, 
       approval : approval, 
       receiver : receiver, 
       cc : cc, 
       subject : subject, 
       msg : msg, 
       attachment : formData, 
       refnd : refnd, 
       refarsip : refarsip 
      } 
+0

formDataをjQueryのデータとして設定し、現在のデータの他の値をformDataに設定する必要があります。 – jcubic

+0

私は多くのデータから選択できますか? @jcubic –

+0

formDataはどこにも作成しません。 formDataのインスタンスを作成し、ファイルやその他のプロパティの値を追加する必要があります。 – jcubic

答えて

1

これを試してみてください

<?php 
    if ($_FILES['file']['error'] > 0){ 
     echo 'Error: ' . $_FILES['file']['error'] . '<br>'; 
    } 
    else { 
     if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name'])) 
     { 
      echo "File Uploaded Successfully"; 
     } 
    } 

?> 

これは、1つのファイルをサーバーにアップロードします。いくつかの変更を加え、複数のファイルをアップロードすることもできます。

関連する問題