# 自动加载新模块
composer dump-autoload
# 安装 AWS S3 依赖(如果使用S3)
composer require league/flysystem-aws-s3-v3 "^3.0"
在 .env 文件中添加:
# 使用 S3 存储
IMAGE_UPLOAD_DISK=s3
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket
或使用本地存储:
IMAGE_UPLOAD_DISK=public
php artisan config:clear
php artisan cache:clear
访问:/admin/image-upload
// 上传单张图片
const formData = new FormData();
formData.append('image', fileInput.files[0]);
formData.append('directory', 'shop/uploads');
fetch('/api/image-upload/upload', {
method: 'POST',
body: formData,
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content
}
})
.then(res => res.json())
.then(data => {
if (data.success) {
console.log('图片URL:', data.data.url);
}
});
<template>
<image-upload
:multiple="false"
directory="user/avatars"
@uploaded="handleUpload"
/>
</template>
<script>
export default {
methods: {
handleUpload(data) {
console.log('上传成功:', data.url);
}
}
}
</script>
✅ 单张/批量图片上传
✅ AWS S3 / 本地存储
✅ 自动图片优化(WebP)
✅ 文件验证(类型、大小)
✅ 管理后台 + 前端支持
✅ Vue 组件即用
✅ RESTful API
| 用途 | 管理后台 | 前端 |
|---|---|---|
| 上传单张 | POST /admin/image-upload/upload |
POST /api/image-upload/upload |
| 上传多张 | POST /admin/image-upload/upload-multiple |
POST /api/image-upload/upload-multiple |
| 删除图片 | DELETE /admin/image-upload/delete |
DELETE /api/image-upload/delete |
| 获取URL | GET /admin/image-upload/url |
GET /api/image-upload/url |
uploadSingleImage(file, 'user/avatars')
uploadMultipleImages(files, 'product/images')
uploadMultipleImages(files, 'review/images')
uploadSingleImage(file, 'chat/messages')
storage/logs/laravel.log现在你可以在管理后台和前端使用图片上传功能了!
需要帮助? 查看完整文档或联系 dev@longyi.com