2016-05-12 5 views
0

So im mit wamp64 mit php7 im versuchen, Bilder hochladen. meine Form sieht gefällt das:Wamp64, PHP7, Laravel 5.2, Tmp-Ordner dosnt speichern Dateien

<form method="POST" action="/dashboard/nalaz/dodaj/{{ $patients->id}}" enctype="multipart/form-data"> 
    <input type="file" name="images[]"> 
</form> 

das ist meine php.ini Datei-Uploads Konfiguration

file_uploads = On 
upload_tmp_dir ="C:/wamp64/tmp" 
upload_max_filesize = 3M 
max_file_uploads = 5 

Jetzt mache ich dies in meinem Laravel Controller

$temp = tmpfile(); 
$images = $request->file('reportimages'); 
dd($images); 

dd() gibt mir das Array hochgeladener Dateien

array:1 [▼ 
    0 => UploadedFile {#363 ▼ 
    -test: false 
    -originalName: "11082663_10205108991016758_689124932158641809_n.jpg" 
    -mimeType: "image/jpeg" 
    -size: 42149 
    -error: 0 
    path: "C:\wamp64\tmp" 
    filename: "php95FE.tmp" 
    basename: "php95FE.tmp" 
    pathname: "C:\wamp64\tmp\php95FE.tmp" 
    extension: "tmp" 
    realPath: "C:\wamp64\tmp\php95FE.tmp" 
    aTime: 2016-05-12 10:21:16 
    mTime: 2016-05-12 10:21:16 
    cTime: 2016-05-12 10:21:16 
    inode: 0 
    size: 42149 
    perms: 0100666 
    owner: 0 
    group: 0 
    type: "file" 
    writable: true 
    readable: true 
    executable: false 
    file: true 
    dir: false 
    link: false 
    linkTarget: "C:\wamp64\tmp\php95FE.tmp" 
    } 
] 
„C:/wamp64/tmp“

aber nichts wird geschrieben so kann es nicht wirklich die immage sparen, weil es kein Bild im Ordner tmp ist

ich auf Fenster bin und ich gewährte alle Berechtigungen für alle Benutzer für die tmp-Ordner

+0

Es ist immer eine gute Idee, ein wenig PHP zu lernen, bevor man es in ein Framework einpackt. – RiggsFolly

+0

Es tut mir leid, ich bin ein rooky @ RiggsFolly. Du kennst also die Lösung meines Problems? –

+0

https://laravel.com/docs/5.1/responses und suchen Sie nach 'File Downloads' – RiggsFolly

Antwort

1

the PHP Manual on file uploads Zitiert:

Die Datei wird am Ende der Anforderung aus dem temporären Verzeichnis gelöscht werden, wenn es wurde entfernt nicht verschoben oder umbenannt.

Und Laravels dd() beendet Skriptausführung, so dass die Datei danach verschwunden ist.

Aber das Umbenennen hochgeladener Dateien ist trivial, PHP hat sogar eine designierte Funktion, genau das zu tun: move_uploaded_file().

+0

die Sache ist, ich öffne meine TMP-Ordner lol, und ich beobachte es, während ich die Anfrage sende, aber nichts erscheint sogar für eine Millisekunde. Sollte es zumindest für einen Moment erscheinen, bis es dd() erreicht? –

+0

und ich entdeckte dies, bevor ich dd() benutzte. Ich konnte das Bild nicht speichern, da es nicht im tmp-Ordner gefunden werden konnte. –

+0

Abhängig von der Implementierung von PHP oder MSVCRT wurde die Datei möglicherweise nicht einmal auf den Datenträger geschrieben, bevor der Löschvorgang ausgeführt wurde. Und selbst wenn es gewesen wäre, ist es wahrscheinlich, dass Windows Explorer nicht oft genug (wenn überhaupt) zurückschaut, um die Datei im Prozess zu erfassen. Was passiert, wenn Sie ein 'sleep (10);' vor 'dd' setzen? – Siguza