Laravel-excel: [BUG] 'File tidak ditemukan di jalur' saat mengimpor file di server saat file_exists($path) mengembalikan nilai true

Dibuat pada 11 Okt 2018  ·  21Komentar  ·  Sumber: Maatwebsite/Laravel-Excel

Prasyarat

  • [x] Mampu mereproduksi perilaku di luar kode Anda, masalahnya diisolasi ke Laravel Excel.
  • [X] Memeriksa bahwa masalah Anda belum diajukan.
  • [X] Diperiksa jika tidak ada PR yang dikirimkan yang memperbaiki masalah ini.

Versi

  • Versi PHP: 7.1.16
  • Versi Laravel: 5.7
  • Versi paket: 3.1.1

Keterangan

Ketika saya mencoba mengikuti dokumentasi tentang mengimpor file yang disimpan di server, saya mendapatkan Illuminate\Contracts\Filesystem\FileNotFoundException mengatakan File not found at path: [path to file] . Namun, file_exists($path); mengembalikan nilai true.

Langkah-langkah untuk Reproduksi

  1. Instal Laravel versi baru.
  2. Instal Laravel Excel.
  3. Letakkan file xlsx Anda di folder proyek, misalnya di folder penyimpanan/aplikasi.
  4. Jalankan php artisan make:import UsersImport --model=User .
  5. Tambahkan kode berikut ke rute, perintah, atau tempat Anda dapat menjalankannya:
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;

Excel::import(new UsersImport, storage_path('app/test.xlsx'));
  1. Jalankan kodenya.

Perilaku yang diharapkan:
Menurut dokumen, baris dalam file harus diimpor ke tabel pengguna.

Perilaku sebenarnya:
Illuminate\Contracts\Filesystem\FileNotFoundException: File not found at path: [path]

Komentar yang paling membantu

Ini bukan bug. Letakkan file excel Anda di folder "storage/app". itu menggunakan konfigurasi disk default di config/filesystems.php

Periksa Bagian Dokumentasi Ini

Semua 21 komentar

@mattias-person
Coba yang ini sebagai gantinya:
Excel::import(new UsersImport, 'test.xlsx');

Lihat Mengimpor dari disk default untuk informasi selengkapnya tentang cara menangani file yang ingin Anda impor.

Ah, burukku. Saya melewatkan bagian dokumen itu. Terima kasih!

saya punya masalah yang sama, :(

pengontrol:

namespace App\Http\Controllers\Admin;

gunakan App\Model\Mahasiswa;
gunakan App\Model\UsersImport;
gunakan Maatwebsite\Excel\Facades\Excel;
gunakan App\Http\Controllers\Controller;
gunakan App\Http\Requests;

kelas UserimController memperluas Controller
{
impor fungsi publik()
{
Excel::import(new UsersImport, 'Mahasiswa.xlsx');

      return back()->with('success', "Import data succesfull");
    }
  }

dan Kelas atau model saya:

aplikasi namespace\Model;

gunakan Aplikasi\Mahasiswa;
gunakan Maatwebsite\Excel\ConcernsToModel;
class UsersImport mengimplementasikan ToModel
{
/**

  • @param array $baris
    *
  • @return Mahasiswa|nul
    */
public function model(array $row)
{
    return new Mahasiswa([
          'npm'     => $row[0],
          'nama_mahasiswa'    => $row[1],
          'jenis_kelamin'    => $row[2],
          'tanggal_lahir'    => $row[3],
        ]);
    }
}

dan kesalahan:
Liga \ Flysystem \ FileNotFoundException
File tidak ditemukan di jalur: Mahasiswa.xlsx

dan:
fungsi publik assertPresent($path)
{
if ($this->config->get('disable_asserts', false) === false && ! $this->has($path)) {
lempar FileNotFoundException($path);
}
}

ada apa dengan pekerjaanku :(

hmmm
pengontrol
`

namespace App\Http\Controllers\Admin;

gunakan App\Model\Mahasiswa;
gunakan App\Model\UsersImport;
gunakan Maatwebsite\Excel\Facades\Excel;
gunakan App\Http\Controllers\Controller;
gunakan App\Http\Requests;

kelas UserimController memperluas Controller
{
impor fungsi publik()
{
Excel::import(new UsersImport, 'Mahasiswa.xlsx');

      return back()->with('success', "Import data succesfull");
    }
  }

`

kelas atau model:
`

aplikasi namespace\Model;

gunakan Aplikasi\Mahasiswa;
gunakan Maatwebsite\Excel\ConcernsToModel;
class UsersImport mengimplementasikan ToModel
{
/**

  • @param array $baris
    *
  • @return Mahasiswa|nul
    */
public function model(array $row)
{
    return new Mahasiswa([
          'npm'     => $row[0],
          'nama_mahasiswa'    => $row[1],
          'jenis_kelamin'    => $row[2],
          'tanggal_lahir'    => $row[3],
        ]);
    }
}

`

dan kesalahan ini

Liga \ Flysystem \ FileNotFoundException
File tidak ditemukan di jalur: Mahasiswa.xlsx

dan database saya adalah

image

@GlennM tolong bantu saya :(

image

@GlennM tolong bantu saya :(

@Emha2403 Silakan periksa lokasi file Anda. Sepertinya file yang Anda coba impor tidak berada di lokasi yang tepat.

Anda seharusnya dapat menemukan direktori yang benar dengan memeriksa disk mana yang Anda gunakan dan menemukan jalur root yang sesuai untuk driver tersebut.

hai, saya menemui pertanyaan yang sama, dan saya yakin file saya telah diunggah di url yang tepat yang saya gunakan

hai, saya menemui pertanyaan yang sama, dan saya yakin file saya telah diunggah di url yang tepat yang saya gunakan

@ williams-young Bisakah Anda membuka terbitan baru (sesuai dengan templat terbitan) dengan menyebutkan semua informasi yang relevan? Terima kasih!

Ini bukan bug. Letakkan file excel Anda di folder "storage/app". itu menggunakan konfigurasi disk default di config/filesystems.php

Periksa Bagian Dokumentasi Ini

xxxxxxxxxxxxxxxxxxx \ penyimpanan \ aplikasi
file excel harus masuk ke jalur berikut.

xxxxxxxxxxxxxxxxxxx\storage\app
el archivo excel debe ir en la siguiente ruta.

Silakan kirim pertanyaan atau komentar terkait dukungan dalam bahasa Inggris jika Anda ingin kami memberikan dukungan.

Saya mengerti bahwa perilaku ini didokumentasikan, tetapi sekali lagi itu tampak aneh dan tidak intuitif. Jika Anda memberikannya filePath absolut yang kembali sebagai true dari file_exists()....itu akan dimuat. Tampaknya ada banyak "gotcha" yang tidak perlu dengan paket ini, bahkan ketika mencoba melakukan operasi impor yang sangat mendasar.

Saya memiliki 4 kolom XLSX dengan 100 baris yang ingin saya impor ke dalam koleksi. Saya harus mengunjungi forum untuk masalah filePath, tanggal kembali sebagai bilangan bulat, dan mencoba mencari tahu apa gunanya kelas XYZImport yang dihasilkan ini ketika saya mencoba mengimpor xlsx kecil ke koleksi.

Jika Anda memberikannya filePath absolut yang kembali sebagai true dari file_exists().... itu harus memuat

Saya setuju dengan ini. Sepertinya itu menyebabkan kebingungan bagi banyak pengguna.

Saya setuju ini membingungkan.

Tidak bisakah dokumentasi menyebutkan jalur storage/app default? Saya tahu ini dapat dikonfigurasi dan semuanya tetapi saya cukup yakin ini akan memberi pengguna dengan pengetahuan laravel yang lebih sedikit waktu yang lebih mudah.

Saya setuju ini membingungkan.

Tidak bisakah dokumentasi menyebutkan jalur storage/app default? Saya tahu ini dapat dikonfigurasi dan semuanya tetapi saya cukup yakin ini akan memberi pengguna dengan pengetahuan laravel yang lebih sedikit waktu yang lebih mudah.

Jika menurut Anda dokumentasi kekurangan beberapa informasi, Anda selalu dapat mengirimkan permintaan tarik ke dokumen. Anda dapat melakukannya dengan menggunakan tautan Help us improve this page! terletak di bagian bawah setiap halaman.

hitung saya dengan bingung .. sedang mencoba melewati jalur absolut menggunakan base_path () karena file saya disimpan di luar folder penyimpanan dan di folder "modul" khusus .. tidak bisa membuatnya berfungsi, akhirnya harus pindah file saya ke jalur penyimpanan. Jika jalur yang diterima dimulai dengan garis miring, itu seharusnya hanya mengasumsikan bahwa itu adalah jalur absolut IMO

Ya, sebenarnya tampaknya bahkan setelah menambahkan file ke penyimpanan tidak dapat menemukannya. Dilihat dari respons kesalahannya, ia mencoba jalur relatif pada akhirnya :man_facepalming: .

Telah didokumentasikan selama beberapa bulan bahwa menggunakan jalur absolut dimungkinkan: https://docs.laravel-excel.com/3.1/imports/basics.html#importing -full-path

Saya akan mengunci tiket ini agar proses dukungan tetap lancar. Jika bug atau pertanyaan baru muncul, buat masalah baru yang menjelaskan kasus spesifik Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

alejandri picture alejandri  ·  3Komentar

contifico picture contifico  ·  3Komentar

amine8ghandi8amine picture amine8ghandi8amine  ·  3Komentar

wwendorf picture wwendorf  ·  3Komentar

daraghoshea picture daraghoshea  ·  3Komentar