2016-03-24 16 views
0

こんにちは、FormData()メソッドを使用してAJAXからLaravelに画像をアップロードしようとしています。私はファイルを送信していると思います。なぜなら、サイズ(2MB)を超過するファイルを送信すると、サーバーは検証エラーで私に応答していますが、保存していないイメージプロパティを送信すると、私はコンソールでエラーが発生していない、ステータスコードは200 OKです。アップロード画像AJAX - Laravel 5.2

私はすでに別のポストが、didntの仕事を探す:/

これは私のJSコードの一部です:

$(document).ready(function(e) { 
    $("#uploadimage").on('submit', (function(e) { 
    e.preventDefault() 
    $('#mensaje').empty() 
    $('#loading').show() 
    var token = $('#token').val() 

    $.ajax({ 
     url: '/admin/imagenes', 
     headers: { 
     "X-CSRF-TOKEN": token 
     }, 
     type: 'POST', 
     data: ({ 
     type: 'post', 
     formData: new FormData(this) 
     }), 
     contentType: false, 
     cache: false, 
     processData: false, 
     success: function(data) { 
     $('#loading').hide() 
     $('#message').html(data) 
     } 

、これが私のLaravelコードです:

public function store(Request $request) { 
    if ($request->file('file')) { 
    $file = $request->file('file'); 
    $name = 'NacionGrita_' .time(). '.' . $file->getClientOriginalExtension(); 
    $path = base_path(). '/imagenes/articulos'; 
    $file->move($path, $name); 

    $imagen = new Imagen(); 
    $imagen->url = $name; 

    $imagen->save(); 

    return response()->json(
     $file->toArray() 
    ); 
    } 

} 

そして、これ私のブレードコード:

{!!Form::open(['route' => 'admin.imagenes.store', 'id' => 'uploadimage', 'method' => 'POST', 'files' => true])!!} 
<div class="form-group "> 
    {!!Form::label('file', 'Imagen principal')!!} 
    {!!Form::file('file', null, ['class' => 'form-control', 'id' => 'file','placeholder' => 'Ingrese el título del post', 'required'])!!} 
</div> 
<div class="form-group "> 
    {!!Form::submit('Agregar Artículo', ['class' => 'btn btn-primary submit', 'id' => 'upImg'])!!} 
</div> 
{!!Form::close()!!} 
</div> 

私は誰でも私を助けることを願っています。どうもありがとうございます。

+1

このメソッドを試してください。それは動作しています。それは、ajaxからデータを送信する前に、Base64としてイメージを変換し、次にajax経由でそのBase64コードを渡すことができます。コントローラから呼び出すことができます。あなたはそれを保存することができます..試してください...ありがとう –

答えて