2016-05-12 2 views
0

Так что я использую wamp64 с php7 im, пытающимся загрузить изображения. моя форма выглядит это нравится:Wamp64, PHP7, Laravel 5.2, tmp folder dosnt хранить файлы

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

это мой php.ini конфигурации загрузки файлов

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

Теперь я сделать это в мой контроллер Laravel

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

дд() дает мне массив загруженных файлов

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» поэтому он не может реально спасти immage, потому что нет никакого изображения в папке TMP

Я на окнах, и я получил все разрешения для всех пользователей, для tmp.

+0

Его всегда хорошая идея, чтобы выучить немного PHP, прежде чем обернуть его в рамки – RiggsFolly

+0

им жаль я новичок @RiggsFolly. Значит, вы знаете решение моей проблемы? –

+0

https://laravel.com/docs/5.1/responses и искать 'File Downloads' – RiggsFolly

ответ

1

Цитирование the PHP Manual on file uploads:

Файл будет удален из временного каталога в конце запроса, если он не был перемещен в сторону или переименован.

И Laravel's dd() завершает выполнение сценария, после чего файл исчез.

Но переименование загруженных файлов тривиально, PHP даже имеет назначенные функции, чтобы сделать именно это: move_uploaded_file().

+0

вещь, я открываю мою папку tmp lol, и я смотрю ее, пока я отправляю запрос, но ничего не появляется даже для milisecond. Должно ли оно появляться, по крайней мере, на мгновение, пока оно не достигнет dd()? –

+0

, и я обнаружил это до того, как использовал dd(). Я не смог сохранить изображение, потому что он не мог быть найден в папке tmp. –

+0

В зависимости от реализации PHP или MSVCRT файл, возможно, даже не был сброшен на диск до того, как будет выпущено удаление. И даже если бы это было так, скорее всего, Windows Explorer не проверяет достаточно часто (если вообще), чтобы поймать файл в процессе. Что произойдет, если вы поместите 'sleep (10);' before 'dd'? – Siguza