listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=
dirmessage_enable=YES
use_localtime=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES use_localtime=YES
connect_timeout=
accept_timeout=
max_clients=
max_per_ip= #主动模式
port_enable=YES
connect_from_port_20=NO
ftp_data_port=
pasv_promiscuous=YES
#被动模式
#pasv_enable=YES
#pasv_min_port=
#pasv_max_port=

用主动模式的时候,laravel默认就可以上传文件了。
D:\phpStudy\WWW\xxx\config\filesystems.php

'ftp' => [
'driver' => 'ftp',
'host' => '52.xx.xx.239',
'username' => 'xx',
'password' => 'xx',
'root' => '/xx/xx/data',
'passive' => false,
'timeout' => 100,
],

上传文件代码:

public function multiUpload($imageArray, $path = '', $prefix = '')
{
set_time_limit(800);
if (!$imageArray || count($imageArray) > 50) {
return false;
}
$new_image_array = [];
foreach ($imageArray as $key => $value) {
$mime_type = $value->getClientOriginalExtension();
$save_name = $prefix . str_random(6) . '.' . $mime_type;
// $new_image_array['image'][] = $value->storeAs($path, $save_name, 'ftp');
$new_image_array['image'][] = 'storage/' . $value->storeAs($path . '/image', $save_name, 'public');
}
return $new_image_array;
}

或者下面的 形式ftp存文件

        //测试ftp上传
Storage::disk('ftp')->put('data/1.txt', "ftp123456222");
$exists = Storage::disk('ftp')->exists('data/12.txt');
var_dump($exists);

或下面这个 上传也挺好的

if(!empty($request->file())){            //判断是否有文件传入
$file = $request->file($fileName); //获取到请求文件
if(!empty($file)){ //判断文件是否存在
$fileExt = $file->getClientOriginalExtension(); //获取文件后缀名
$realPath = $file->getRealPath(); //获取文件真实路径
$filename = date('YmdHis') . uniqid() . '.' . $fileExt; //按照一定格式取名
$filepath = $fileName.'/'; //个人要求的路径
$bool = Storage::disk('ftp')->put('/data/'.$filepath.$filename, file_get_contents($realPath)); //使用Storage传文件至ftp
$fileServer = $server; //ftp的ip地址
$fileUrl = $fileServer.$filepath.$filename; //文件的url地址
if($bool){
return $fileUrl; //返回文件url,可用于传入数据库
} else{
return '500';
}
}
}
return null;
}

转 :  https://blog.csdn.net/zhezhebie/article/details/80679764

Laravel移动本地文件到ftp服务器

从本地移动文件到远程服务器: (laravel 5.7 才支持这个功能)

Storage::disk('ftp')
->writeStream(
'remote-file.zip',
Storage::disk('local')->readStream('local-file.zip')
);

To response-streams:

return response()->stream( function() {
fpassthru( Storage::disk('s3')->readStream('file.zip') );
});

转 : https://blog.csdn.net/zhezhebie/article/details/85763217

ftp配置 Laravel上传文件到ftp服务器的更多相关文章

  1. asp.net 服务器 上传文件到 FTP服务器

    private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...

  2. .Net 上传文件到ftp服务器和下载文件

    突然发现又很久没有写博客了,想起哎呦,还是写一篇博客记录一下吧,虽然自己还是那个渣渣猿. 最近在做上传文件的功能,上传到ftp文件服务器有利于管理上传文件. 前面的博客有写到layui如何上传文件,然 ...

  3. java 上传文件到 ftp 服务器

    1.  java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...

  4. java 上传文件到FTP(centos中的ftp服务)

    ftp服务器系统:centos7 提供ftp的服务:vsftpd pom.xml 依赖 <dependency> <groupId>commons-net</groupI ...

  5. JAVA上传文件到FTP上

    添加maven <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...

  6. FTP主动模式上传文件时返回"ftp: accept: Resource temporarily unavailable"

    FTP主动模式上传文件时返回 Passive mode off ftp: accept: Resource temporarily unavailable 这个问题要从ftp的2种模式说起 PORT ...

  7. Laravel 上传文件处理

    文件上传 获取上传的文件 可以使用 Illuminate\Http\Request 实例提供的 file 方法或者动态属性来访问上传文件, file 方法返回 Illuminate\Http\Uplo ...

  8. springMVC:为MultipartFilte配置了上传文件解析器,报错或不能使用

    一.问题描述为支持restful风格请求,并且应对可能上传文件的情况,需要在配置hiddenHttpMethodFilter过滤器之前配置MultipartFilter.目的是让MultipartFi ...

  9. C# 上传文件至远程服务器

    C# 上传文件至远程服务器(适用于桌面程序及web程序) 2009-12-30 19:21:28|  分类: C#|举报|字号 订阅     最近几天在玩桌面程序,在这里跟大家共享下如何将本地文件上传 ...

随机推荐

  1. 【JUC】7.CountDownLatch

    Latch:门闩.一种线程通信的方式:当程序不涉及同步,仅仅需要线程通信的时候,使用synchronize或者lock的线程通信等待唤醒机制,就显得太重了: 这时候,可以考虑使用信号量类:CountD ...

  2. go工程组织规范

    go编码以workspace形式管理,一个workspace包含所有的Go编码,包含多个版本控制仓库(例如使用git管理的多个仓库).每个仓库包含多个包package,每个package是一个单独的路 ...

  3. AD如何改变PCB文件的黑色背景

    第一步:打开AD软件,新建一个PCB文件.   2 第二步:在黑色区域随便画一个封闭的多边形——注意一定要是封闭的!   3 第三步:点击“Ctrl + A”快捷键将PCB整个文件选中.   4 第四 ...

  4. MySQL数据库开发规范-EC

    最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是 ...

  5. 个性化排序算法实践(四)——GBDT+LR

    本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical Lessons from Predi ...

  6. 布隆过滤器(Bloom Filter)-学习笔记-Java版代码(挖坑ing)

    布隆过滤器解决"面试题: 如何建立一个十亿级别的哈希表,限制内存空间" "如何快速查询一个10亿大小的集合中的元素是否存在" 如题 布隆过滤器确实很神奇, 简单 ...

  7. c++中结构体的使用

    文章链接: 结构体定义: struct Books { ]; ]; ]; int book_id; } book; 访问结构体成员: #include <iostream> #includ ...

  8. JDK源码那些事儿之SynchronousQueue下篇

    之前一篇文章已经讲解了阻塞队列SynchronousQueue的大部分内容,其中默认的非公平策略还未说明,本文就紧接上文继续讲解其中的非公平策略下的内部实现,顺便简单说明其涉及到的线程池部分的使用 前 ...

  9. python读取excel的内容

    import csvimport xlrdimport xlwt def handler_excel(filename=r'd:\\wu.xlsx'): # 打开文件 workbook = xlrd. ...

  10. Oracle 新增数据 insert into整理

    一.普遍的方法:insert into 表名(id,name,age,status,字段N) values('id','name','age','status','字段N');   --建议用这个   ...