2016-03-24 23 views
0

Hallo, ich versuche Bilder von der AJAX mit der FormData() Methode nach Laravel hochzuladen. Ich denke, dass ich die Datei gut sende, weil, wenn ich eine Datei schicke, die die Größe (2mb) übersteigt, antwortet der Server mich mit Validierungsfehler, aber wenn ich mit guten Bildeigenschaften sende es nicht, weiß ich nicht, warum und Ich bekomme keinen Fehler in der Konsole, der Statuscode ist 200 OK.Bild hochladen AJAX - Laravel 5.2

Ich sehe schon für einen anderen Posten aber nicht funktioniert hat:/

dieser Teil meines JS-Code ist:

$(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) 
     } 

und das ist mein Laravel Code:

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() 
    ); 
    } 

} 

Und das Mein Blade-Code:

{!!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> 

Ich hoffe, dass mir jemand helfen kann. Ich danke dir sehr.

+1

Versuchen Sie diese Methode ... Es funktioniert .. Das ist Bevor Sie senden Daten von Ajax genannt, konvertieren Sie Ihr Bild als Base64 und dann können Sie diese Base64-Code über Ajax und dann auf Controller übergeben Sie können diesen Code in normal dekodieren Bild..und dann können Sie es speichern .. Versuchen Sie es ... Danke –

Antwort