【发布时间】:2020-07-12 05:40:04
【问题描述】:
我正在用 Laravel 编写代码。当我尝试用表单中的文件发帖时,它会抛出以下异常:
得到错误'PHP消息:PHP致命错误:未捕获的ErrorException:包括(/var/www/vhosts/web2/httpdocs/vendor/composer/../../app/Exceptions/Handler.php):未能打开流:/var/www/vhosts/web2/httpdocs/vendor/composer/ClassLoader.php:444 中没有这样的文件或目录\n堆栈跟踪:\n#0
. . .n#5 /var/www/vhosts/web2/httpdocs/vendor/laravel/framework/src/Illuminate/Container/Container.php(803): ReflectionClass->__construct('App\...', referer : (隐藏)
add.blade.php:
@include('flash::message')
<form class="form-horizontal" enctype="multipart/form-data" action="{{action('SheetController@add')}}" method="post">
@csrf
<div class="form-group">
<label class="col-md-4 control-label" for="icao">ICAO</label>
<div class="form-group col-md-4">
<input placeholder="i.e. SAAC" class="form-control input-md" id="icao" name="icao" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="fir">FIR</label>
<div class="col-md-4">
<select id="fir" name="fir" class="form-control input-md" required>
<option value="SAEF">Ezeiza</option>
<option value="SACF">Córdoba</option>
<option value="SAMF">Mendoza</option>
<option value="SAVF">Comodoro Rivadavia</option>
<option value="SARR">Resistencia</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="version">Version</label>
<div class="form-group col-md-4">
<input placeholder="i.e. 1.2" class="form-control input-md" id="version" name="version" type="text" required />
</div>
</div>
<!-- File input-->
<div class="form-group">
<label class="col-md-4 control-label" for="sheetfile">Archivo</label>
<div class="col-md-4">
<input id="sheetfile" name="sheetfile" class="form-control input-md" required type="file">
</div>
</div>
<hr style="margin-bottom:20px;">
<div class="form-group">
<div class="btn-group">
<button type="submit" class="btn btn-success">Add</button>
<input type="reset" class="btn btn-warning" value="Reset" />
</div>
</div>
</form>
SheetController.php:
public function add(Request $request)
{
if(!empty($request->all()))
{
$sheet = new Sheet();
$sheet->icao = $request->icao;
$sheet->fir = $request->fir;
$sheet->version = $request->version;
$newName = $sheet->icao.'_v'.$sheet->version.'.pdf';
if($request->file('sheetfile')->getClientOriginalExtension() != 'pdf')
{
flash()->error('File not allowed')->important();
}
else if($request->imagen->storeAs('ATC/Sheets', $newName, 'files'))
{
if($sheet->save()) flash()->success('Sheet added')->important();
else flash()->error($sheet->errors()->first())->important();
}
else flash()->error('The file could not be uploaded.')->important();
}
return redirect()->action('SheetController@list');
}
我已经尝试过composer update 和composer dump-autoload
有什么想法吗?
【问题讨论】:
-
删除
/vendor文件夹,然后运行composer du再试一次。确保/vendor中没有自定义代码 -
不起作用:第 14 行的 \bootstrap\app.php PHP 致命错误:未捕获的错误:在 \boot #0 \artisan(20) 中找不到类“Illuminate\Foundation\Application”: require_once() #1 {main} 在 strap\app.php:14 中抛出 堆栈跟踪:#0 \artisan(20): require_once() #1 {main} 在第 14 行的 \bootstrap\app.php 中抛出 脚本 @php artisan package:discover --ansi 处理 post-autoload-dump 事件,返回错误代码 255
-
我认为
composer du在供应商文件夹中使用了一些脚本 -
愚蠢的我。删除
vendor文件夹后使用composer install -
如果还是不行,我坚信您使用的是过时版本的作曲家,或者
package.json已损坏。尝试安装最新版本的composer,然后重复上述步骤
标签: php laravel exception classloader handler