2016-06-17 5 views
1

etwas seltsames passiert, obwohl ich alles wie üblich tun, vielleicht werden Sie meinen Fehler erkennen.Kann nicht auf hochgeladene Datei Daten in POST-Anfrage zugreifen

Ich benutze dropzone.js Plugin für den Dateiupload und dann habe ich einen Controller, der die Speicherung dieser Datei behandelt, aber in Controller kann ich nicht wirklich die Dateidaten sehen.

Pre-Requisiten: php.ini OK ist POST requestis OK auf localhost Laufen (XAMP)

Dies ist ein minimalistisches Beispiel, das ich mit (noch nicht in Betrieb) endete

Front-end

@extends('layouts.app') 
@section('content')  
    <!-- Change /upload-target to your upload address --> 
    <form action="{{url('attachment')}}" class="dropzone"></form> 
@endsection 
@section('scripts') 
    <script src="https://rawgit.com/enyo/dropzone/master/dist/dropzone.js"></script> 
    <link rel="stylesheet" href="https://rawgit.com/enyo/dropzone/master/dist/dropzone.css"> 
@endsection 

ROUTE

Route::group(['middleware' => 'auth'], function() { 
    Route::post('attachment','[email protected]'); 
}); 

-Controller

class AttachmentController extends Controller 
{ 
    public function Save() 
    { 
     var_dump(Input::get()); 
    } 
} 

POST-Anfrage

-----------------------------18028969725576 
Content-Disposition: form-data; name="file"; filename="3.jpg" 
Content-Type: image/jpeg 

ÿØÿá�Exif��II*������������ÿì�Ducky�����(��ÿámhttp://ns.adobe.com/xap/1.0/�<?xpacket begin="" 
[...] 

Antwort

array(0) { 
} 
+1

Haben Sie versucht, 'var_dump ($ _ FILES)'? Informationen über eine hochgeladene Datei sind in der superglobalen Variable '$ _FILES' verfügbar. – keupsonite

+0

Ja, ich habe die meisten PHP- und Laravel-Sachen wie Input :: file() und $ _POST gemeistert. Noch vielen Dank für den Vorschlag, sehr geschätzt. :) – Lixi

+1

Sie müssen nicht mit 'Input :: file' oder' Request :: file' anstelle von 'Input :: get' arbeiten? Versuchen Sie auch, 'enctype =' multipart/form-data' zu Ihrem Formular-Tag hinzuzufügen (nicht sicher, ob Dropzone dies aufheben wird, aber normale Uploads erfordern es iirc). – Pevara

Antwort

0

Verwenden $request->file('file') statt Input::get(). Versuchen Sie beispielsweise das folgende Snippet, um es in Ihrem Server von Pfad storage/exports zu speichern.

Stellen Sie sicher, dass die exports Ordner in Ihrem Speicherordner erstellen

class AttachmentController extends Controller 
{ 
    public function Save(Request $request) 
    { 
       $request->file('file')->move(
        storage_path('exports'), 'uploadedFile.jpg' 
       ); 

    } 
}