php - 使用 Laravel 7 上传文件时出现 FTP 连接问题
问题描述
我想Laravel
使用FTP
.
这似乎是一个非常简单的任务,所以让我们看看我的配置:
.env 文件
FTP_HOST=dl.myserver.com
FTP_USERNAME=beni@dl.myserver.com
FTP_PASSWORD=somePass
文件系统.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'ftp' => [
'driver' => 'ftp',
'host' => env('FTP_HOST'),
'username' => env('FTP_USERNAME'),
'password' => env('FTP_PASSWORD'),
'passive' => true,
'port' => 21,
'root' => '/home/myserver/public_html/podcasts'
],
.
.
.
最后是我的控制器
$year = Carbon::now()->year;
$month = Carbon::now()->month;
$day = Carbon::now()->day;
//podcast
$podcast = $request->file('podcast');
$filename = $podcast->getClientOriginalName();
$purename = substr($filename, 0, strrpos($filename, '.'));
$filenametostore = $purename . '_' . $year .'_' . $month . '_' . $day . '.' . $podcast->getClientOriginalExtension();
Storage::disk('ftp')->put($filenametostore, fopen($request->file('podcast'), 'r+'));
.
.
.
但我有这个错误:
League\Flysystem\ConnectionRuntimeException
无法使用连接登录:dl.myserver.com::21,用户名:beni@dl.myserver.com
我的FTP
帐户和信息是真实的,因为我使用FileZilla
.
作为提及,我dl.server.com
正在使用CPANEL
.
关于这个问题有什么想法吗?
提前致谢
解决方案
令人惊讶的是,当我替换env('FTP_HOST')
,env('FTP_USERNAME')
并env('FTP_PASSWORD')
在文件中使用等效的字符串值时问题解决了filesystems.php
!
我尝试了纯PHPFTP functions
并弄清楚了:
$conn_id = ftp_connect("dl.myserver.com");
ftp_login($conn_id, "beni@dl.myserver.com", "somePass");
dd(ftp_put($conn_id, $filenametostore, $request->file('podcast'), FTP_ASCII));
所以我的 Laravelfilesystem.php
看起来像这样:
'ftp' => [
'driver' => 'ftp',
'host' => "dl.myserver.com", //env('FTP_HOST'),
'username' => "beni@dl.myserver.com", //env('FTP_USERNAME'),
'password' => "somePass", //env('FTP_PASSWORD'),
],
在我的情况下它工作正常。
推荐阅读
- java - 如何装饰现有 Java 对象的方法?
- reactjs - 如何将参数道具传递给 redux 容器
- python - Python boto3 从 S3 下载文件错误:“连接中断:OSError”
- machine-learning - 使用不同大小的噪声进行单幅图像增强
- javascript - 尝试在 JavaScript 中递归查找属性
- python - Python 导师 + 谷歌 Colab
- sql - 具有数字的相关子查询等于 where 条件下的子查询
- css - 如何使用 Sass Lint 允许重复的 CSS 属性?
- javascript - 使用 socket.io-stream 节点包通过 socket io 将文件从服务器发送到客户端(浏览器)
- python-3.x - 如何将输出打印到python中的文本文件