donglong2856 2016-08-09 08:46
浏览 74
已采纳

jquery ajax文件上传不工作var_dump($ _ FILES)给出空数组

i have tried to find a solution to my question in this website but i couldn't solve my problem. it is html part:

<form action="" method="post" enctype="multipart/form-data" id="edit_profile_form" >
<input type="file" name="new_profile_photo" id="new_profile_photo" value="Choose Photo" >
<button class="button11" name="save_changes" id="button11" >SAVE </button>
</form>

this is ajax code:

<script type="text/javascript">
    $(document).on('click', '#button11', function(){ 
      event.preventDefault();

          var file_data = $("#new_profile_photo").prop('files')[0];
          var form_data = new FormData();
          form_data.append('file', file_data);

        $.ajax({  
                  url:"ajax/editprofile.php",  
                  method:"POST",  
                  async: false,
                  cache: false,
                  contentType: false,
                  processData: false,
                  data: form_data,

                  success:function(data){   
                      $("#error_messages").html(data);

                  }  
              });  


      });
</script>

when i write var_dump($_FILES) it gives me empty array. if anyone knows ho to solve it please help. thanks

  • 写回答

1条回答 默认 最新

  • douxiduan8344 2016-08-09 08:48
    关注

    Try this:

    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

        <?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";
                }
            }
    
        ?>
    

    It will upload the file to uploads directory

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。