You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Herd环境中上传Excel文件出现“无法创建临时文件”错误的排查求助

Laravel Herd环境中上传Excel文件出现“无法创建临时文件”错误的排查求助

大家好,我现在在Laravel Herd环境下开发Excel批量导入功能,遇到了一个棘手的问题,想请社区的朋友们帮忙排查一下。

我的技术栈

  • Laravel Herd
  • Laravel v12.0
  • PHP v8.2.28
  • maatwebsite/excel v3.1(Laravel Excel)
  • Postman
  • Windows 10 操作系统

我要实现的功能

我想通过Postman发送一个包含.xlsx格式文件的POST请求,后端用maatwebsite/excel包解析这个文件内容,批量创建Alumni模型的数据库记录。

遇到的问题

当我用Postman以form-data形式上传Excel文件并请求导入接口时,直接抛出了这个错误:

Warning: File upload error - unable to create a temporary file in Unknown on line 0

我的代码实现

路由配置(routes/api.php)

Route::controller(AlumniController::class)->group(function () {
    // 其他业务路由...
    Route::post('/alumnis/import', 'importExcel'); // Excel导入专用接口
});

控制器代码(app/Http/Controllers/AlumniController.php)

use Illuminate\Http\Request;
use App\Imports\AlumnisImport;
use Maatwebsite\Excel\Facades\Excel;

class AlumniController extends Controller
{
    // 其他控制器方法...

    public function importExcel()
    {
        try {
            Excel::import(new AlumnisImport, request()->file('alumni_excel'));
        } catch (\Throwable $th) {
            dd($th);
        }
    }
}

Excel导入逻辑类(app/Imports/AlumnisImport.php)

use App\Models\Alumni;
use App\Models\Jurusan;
use Maatwebsite\Excel\Concerns\ToModel;

class AlumnisImport implements ToModel
{
    /**
     * @param array $row
     *
     * @return \Illuminate\Database\Eloquent\Model|null
     */
    public function model(array $row)
    {
        $jurusan = Jurusan::firstOrCreate(
            ['nama' => $row['nama_jurusan']],
            ['nama' => $row['nama_jurusan']]
        );

        return new Alumni([
            'nama'              => $row['nama'],
            'tgl_lahir'         => $row['tgl_lahir'],
            'tahun_mulai'       => $row['tahun_mulai'],
            'tahun_lulus'       => $row['tahun_lulus'],
            'no_tlp'            => $row['no_tlp'],
            'email'             => $row['email'],
            'password'          => isset($row['password']) ? $row['password'] : null,
            'alamat'            => $row['alamat'],
            'tempat_kerja'      => $row['tempat_kerja'] ?? null,
            'jabatan_kerja'     => $row['jabatan_kerja'] ?? null,
            'tempat_kuliah'     => $row['tempat_kuliah'] ?? null,
            'prodi_kuliah'      => $row['prodi_kuliah'] ?? null,
            'kesesuaian_kerja'  => isset($row['kesesuaian_kerja']) ? filter_var($row['kesesuaian_kerja'], FILTER_VALIDATE_BOOLEAN) : null,
            'kesesuaian_kuliah' => isset($row['kesesuaian_kuliah']) ? filter_var($row['kesesuaian_kuliah'], FILTER_VALIDATE_BOOLEAN) : null,
            'photo'             => $row['photo'] ?? null,
            'jurusan_id'        => $jurusan->id,
        ]);
    }
}

我的疑问

  1. 这个“无法创建临时文件”的错误,会不会和Laravel Herd的默认配置有关?
  2. 除了Herd本身,我还应该检查哪些系统权限、PHP配置或者代码细节?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:28:05