如何从https://subdomain.laravel.com/上传文件至https://assets.laravel.com/
Laravel项目跨域名上传文件至独立资源域名配置方案
一、配置文件系统磁盘
修改项目根目录下的config/filesystems.php,添加或完善assets磁盘配置:
'assets' => [ 'driver' => 'local', 'root' => public_path('assets/images'), // 本地存储的根目录,需与资源域名指向路径匹配 'url' => 'https://assets.laravel.com/', // 资源访问的公共域名 'visibility' => 'public', ],
注意:如果
assets.laravel.com部署在独立服务器,不能使用local驱动,需替换为sftp/ftp或云存储驱动(如AWS S3),并补充对应连接配置(主机地址、账号密码等)。只有当资源域名与项目域名指向同一服务器,且assets.laravel.com的根目录映射到上述root配置的路径时,local驱动才适用。
二、实现文件上传逻辑
在控制器中通过Laravel的文件存储门面,将文件上传到assets磁盘:
use Illuminate\Support\Facades\Storage; use Illuminate\Http\Request; public function upload(Request $request) { // 验证上传文件 $request->validate([ 'file' => 'required|image|max:2048', // 可根据业务调整验证规则 ]); if ($request->hasFile('file') && $request->file('file')->isValid()) { // 存储文件到assets磁盘的uploads目录下 $filePath = $request->file('file')->store('uploads', 'assets'); // 获取文件的公共访问URL $accessUrl = Storage::disk('assets')->url($filePath); return response()->json(['success' => true, 'url' => $accessUrl]); } return response()->json(['success' => false, 'msg' => '文件上传失败'], 400); }
三、验证配置有效性
上传文件后,可通过以下方式确认:
- 检查
root配置的目录下是否生成了上传的文件 - 访问返回的
accessUrl,确认文件能正常打开
内容的提问来源于stack exchange,提问作者Emiliano Amaral
相关产品推荐
相关产品推荐

