2017-06-03 55 views
0

我想通過AJAX Laravel(jquery ajax)發送圖像上傳。總是收到空的$ _FILES數組。我在表單中添加了enctype =「multipart/form-data當我通過Laravel的post方法發送數據時,我得到了我的數據,這不適用於jquery ajax,我得到的是其他事情的ajax響應$ _FILES。

我查看文件

<form action="" name="myForm_comment" id="myForm" method="post" role="form" enctype="multipart/form-data"> 

    <input type="hidden" name="snap" id="snap" value=""> 
    <input type="hidden" name="op" id="op" value=""> 
    <input type="hidden" name="ucname" id="name" value="{{$fname}}&nbsp;{{$lname}}"> 


    <textarea rows="3" class="form-control" placeholder="Add a public comment" style="padding:10px;" name="ucmsg" id="textmsg" required></textarea> 

    <input type="file" id="imgInp" name="imgInp"/> 
    <img id="blah" src="" alt="" /> 

    <div class="row"> 
     <div class="col-xs-1 col-xs-offset-8 text-center"> 
      <label for="imgInp"><i class="fa fa-camera-retro" aria-hidden="true"></i></label> 
     </div> 
     <!-- <div class="col-xs-1 text-center"> 
      <label for="imgInp"><i class="fa fa-smile-o" aria-hidden="true"></i></label> 
     </div> --> 
     <div class="col-md-2"> 
      <input type="submit" id ="cmnt_btn" class="btn btn-primary pull-right" name="commentSubmit" value="Comment" onclick="commentFunction();"> 
     </div> 

    </div> 
</form> 

<script> 
    $(document).ready(function(){ 
     //comment database management 
     $("#cmnt_btn").click(function(){ 
      var name = $("#name").val(); 
      var textmsg = $("#textmsg").val(); 
      var picture = $("#imgInp").val(); 
      $.ajax({ 
       url:'comment_dbm', 
       type:'get', 
       data:{ 
        ucname:name, 
        ucmsg:textmsg, 
        ucpic:picture, 
       }, 
       success:function(response) 
       { 
        alert(response); 
       } 
      }); 
     }); 
    }); 
</script> 

我的控制器

<?php 

namespace App\Http\Controllers; 

use App\User; 
use App\Http\Controllers\Controller; 
use DB; 
use Illuminate\Http\Request; 
use Illuminate\Routing\Redirector; 
use Session; 
use Illuminate\Contracts\Validation\Validator; 
use Mail; 


session_start(); 

class CommentController extends Controller 
{ 
    public function comment_dbm() 
    { 

     echo $ucname = $_GET['ucname']; 
     $ucmsg = $_GET['ucmsg']; 
     $cmnt_pic = $_GET['cmnt_pic'];  //I am getting these values response 

     print_r($_FILES); // getting empty array 

    ]); 

    } 
} 

我的路線文件(即web.php)

Route::get('/comment_dbm', [ 
    'uses' => '[email protected]_dbm', 
    'as' => 'comment_dbm' 
]); 
+0

[Laravel 5阿賈克斯文件/圖像上傳(的可能的複製https://stackoverflow.com/questions/32367132/laravel-5-ajax-file-image-upload ) – manniL

回答

0

您不能使用session_start()$_GET。更好地使用內置的SessionRequest類。此外,您無法通過GET請求傳輸數據(如圖像)。使用POST一個。

然後你就可以按照答案here