mrKorg
@mrKorg
web developer

Как исправить ошибку File not found at path: C:/OSPanel/userdata/temp/phpB79B.tmp на OpenServer?

Выполняю сохранение файла в Laravel
public function uploadFile($file)
    {
        dump($file);
        $time = Carbon::now()->toDateTimeString();
        $fileName = str_replace(' ', '_', $time . '_' . $file->getClientOriginalName());
        $uploadPath = public_path() . DIRECTORY_SEPARATOR . 'upload' . DIRECTORY_SEPARATOR . 'workplacesForm';
//        $file->move($uploadPath, $fileName);
        Storage::copy($file, $uploadPath . DIRECTORY_SEPARATOR . $fileName); 
    }

и получаю ошибку
File not found at path: C:/OSPanel/userdata/temp/phpB79B.tmp

Сервер - OpenServer.

Дамп файла из метода выше:
UploadedFile {#272
  -test: false
  -originalName: "eee.txt"
  -mimeType: "text/plain"
  -size: 0
  -error: 0
  #hashName: null
  path: "C:\OSPanel\userdata\temp"
  filename: "phpDCEC.tmp"
  basename: "phpDCEC.tmp"
  pathname: "C:\OSPanel\userdata\temp\phpDCEC.tmp"
  extension: "tmp"
  realPath: "C:\OSPanel\userdata\temp\phpDCEC.tmp"
  aTime: 2017-09-14 05:48:21
  mTime: 2017-09-14 05:48:21
  cTime: 2017-09-14 05:48:21
  inode: 0
  size: 0
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\OSPanel\userdata\temp\phpDCEC.tmp"
}


Так же выяснилось, что после загрузки файла, он появляется в temp папке, на какое-то мгновение и исчезает, свою логику по работе с файлом исключил.
Почему так происходит?
  • Вопрос задан
  • 2401 просмотр
Решения вопроса 1
mrKorg
@mrKorg Автор вопроса
web developer
Короче виной всему я сам:
$time = Carbon::now()->toDateTimeString();
        $fileName = str_replace(' ', '_', $time . '_' . $file->getClientOriginalName());

Так я генерирую недопустимое имя для файла, а именно строку в которой время имеет разделитель ":", поэтому я просто не мог переименовать файл.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ctpayc
Из документации:

The copy method may be used to copy an existing file to a new location on the disk:

Storage::copy('old/file1.jpg', 'new/file1.jpg');

По-моему у вас $file - или не сохранен еще, или не там (C:/OSPanel/userdata/temp/phpB79B.tmp)...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы