INSTALLATION.md 3.7 KB

ImageUpload 模块安装指南

快速开始

1. 安装依赖

在项目根目录运行:

composer dump-autoload

由于使用了本地路径仓库(packages/*/*),composer会自动识别新模块。

2. 配置 AWS S3

.env 文件中添加或修改以下配置:

# 设置默认上传磁盘为s3
IMAGE_UPLOAD_DISK=s3

# AWS S3 配置
AWS_ACCESS_KEY_ID=your-access-key-id
AWS_SECRET_ACCESS_KEY=your-secret-access-key
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket-name
AWS_URL=https://your-bucket.s3.us-east-1.amazonaws.com
AWS_USE_PATH_STYLE_ENDPOINT=false

# 可选:设置最大上传大小(KB),默认5120KB (5MB)
IMAGE_UPLOAD_MAX_SIZE=5120

3. 安装AWS S3依赖

如果尚未安装AWS S3 SDK,运行:

composer require league/flysystem-aws-s3-v3 "^3.0"

4. 清除缓存

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

5. 访问管理后台

登录管理后台后,访问:

/admin/image-upload

或者在菜单中添加链接到图片上传页面。

6. 前端使用

前端用户可以通过 API 上传图片:

  • 单张上传: POST /api/image-upload/upload
  • 批量上传: POST /api/image-upload/upload-multiple
  • 删除图片: DELETE /api/image-upload/delete
  • 获取URL: GET /api/image-upload/url

详细的前端使用示例请查看 FRONTEND_EXAMPLES.md

验证安装

检查路由是否注册

运行以下命令查看路由:

php artisan route:list | grep image-upload

应该看到以下路由:

  • POST /admin/image-upload/upload
  • POST /admin/image-upload/upload-multiple
  • DELETE /admin/image-upload/delete
  • GET /admin/image-upload/url

测试上传

  1. 访问 /admin/image-upload
  2. 选择一张图片
  3. 点击上传按钮
  4. 检查是否成功上传并显示图片URL

故障排除

问题1: 找不到类错误

如果看到类似 Class "Longyi\ImageUpload\Services\ImageUploadService" not found 的错误:

composer dump-autoload
php artisan clear-compiled

问题2: S3连接错误

如果遇到S3连接问题:

  1. 检查 .env 中的AWS配置是否正确
  2. 确认IAM用户有S3写入权限
  3. 检查Bucket策略是否允许访问
  4. 测试AWS凭证:
php artisan tinker
>>> Storage::disk('s3')->put('test.txt', 'test')

问题3: 权限错误

确保存储目录有正确的权限:

chmod -R 775 storage
chmod -R 775 bootstrap/cache

问题4: 图片上传失败

检查以下内容:

  1. PHP上传限制 (php.ini):

    upload_max_filesize = 10M
    post_max_size = 10M
    
  2. Laravel验证规则中的文件大小限制

  3. 查看日志文件:

    tail -f storage/logs/laravel.log
    

切换到本地存储

如果想使用本地存储而不是S3,修改 .env

IMAGE_UPLOAD_DISK=public

然后运行:

php artisan storage:link

API测试示例

使用curl测试上传API:

单张图片上传

curl -X POST http://your-domain.com/admin/image-upload/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "image=@/path/to/image.jpg" \
  -F "directory=test/uploads"

多张图片上传

curl -X POST http://your-domain.com/admin/image-upload/upload-multiple \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "images[]=@/path/to/image1.jpg" \
  -F "images[]=@/path/to/image2.jpg" \
  -F "directory=test/uploads"

下一步

  • 阅读 README.md 了解完整功能
  • 查看控制器代码了解API使用方法
  • 根据需要自定义配置

支持

如有问题,请联系:dev@longyi.com