苍穹外卖-新增菜品(菜品图片-文件上传)(三)

**关于新增菜品**

**需求分析和设计**
业务规则:
-菜品名称必须是唯一的
-菜品必须属于某个分类下,不能单独存在新增菜品时可以根据情况选择菜品的口味
-每个菜品必须对应一张图片

**接口设计:**  3个接口
-根据类型查询分类(已完成)
-文件上传
-新增菜品

首先菜品分类是一个下拉框,获取的数据就需要调用分类的某个接口获取数据
图片上传也是个交互的接口
保存按钮,需要把表单里的数据提交到服务端,又是一个接口
在controller.admin下创建CommonController存放文件上传
浏览器文件上传-后端服务器-阿里云服务器
在阿里云申请的bucket就是一个空间  创建一个配置属性类,在写阿里云oss配置属性有提示  创建在common的properties中
类名为AliOss注解叫@Configuration(prefix = "sky.alioss")标记为配置属性类
配置类代码,这里引申springboot框架自动将属性的驼峰命名转换成配置中的-来划分
yml文件特点习惯用-分隔单词  在yml中可以不实际写值,而是引用dev的yml(开发环境中的yml)
甚至是prod的yml也就是生产的配置文件  直接修改yml中spring.profiles.active为prod多环境直接把配置文件切换了  目前是关联dev所以具体的配置数据都在dev中
```
@Component
@ConfigurationProperties(prefix = "sky.alioss")
@Data
public class AliOssProperties {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

```
application-dev.yml
```
sky:
  alioss:
    endpoint:在bucket概览最下边对应外网第一个
    access-key-id:
    access-key-secret:
    bucket-name:存储空间名
```
application.yml
```
sky:
  alioss:
    endpoint:${sky.alioss.endpoint}
同上不多说了
```

utils包下的aliossutil存储文件上传的方法,四个属性没有赋值,通过配置类的方式给属性初始化出来
值是从配置文件读过来的,写一个配置文件在config包中,取名OssConfiguration
取名aliossutil,这里有多个模块,properties中存储aliossproperties只有属性
utils中存储Aliossutils里upload文件上传方法
config中存储ossconfiguration用oss属性的赋值打包返回给aliossutil
CommonController代码中的接口实现文件上传upload
```


@RestController
@RequestMapping("/admin/common")
@Api(tags = "通用接口")
@Slf4j
public class CommonController {

    @Autowired
    private AliOssUtil aliOssUtil;

    @PostMapping("/upload")
    @ApiOperation("文件上传")
    public Result<String>  upload(MultipartFile file){
        log.info("文件上传{}",file);
        try {
            //原始文件名
            String originalFilename = file.getOriginalFilename();
            //截取原始文件名后缀
            String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
            //构造新文件名称
            String objectName =UUID.randomUUID().toString() + extension;
            //文件的请求路径
            String filePath = aliOssUtil.upload(file.getBytes(), objectName);
            return Result.success(filePath);
        } catch (IOException e) {
            log.error("文件上传失败{}",e);
        }
        return null;
    }

}

```

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员苍穹项目中的Nginx配置文件可以根据具体需求进行配置。根据引用\[1\]中的描述,可以通过双击nginx.exe启动Nginx,并在http://localhost/访问前端页面。这意味着Nginx的配置文件应该包含有关前端页面的相关配置。另,根据引用\[2\]中的描述,Nginx还可以用作反向代理和负载均衡,因此配置文件还应包含有关反向代理和负载均衡的相关配置。最后,根据引用\[3\]中的描述,苍穹项目还需要与第三方配送公司进行对接和管理,因此配置文件还应包含有关与第三方配送公司对接的相关配置。综上所述,黑马程序员苍穹项目的Nginx配置文件应包含前端页面的相关配置、反向代理和负载均衡的相关配置以及与第三方配送公司对接的相关配置。 #### 引用[.reference_title] - *1* [黑马程序员_Java项目实战《苍穹》_Day01_开发环境搭建](https://blog.csdn.net/BallerWang9/article/details/131824385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [最适合新手的SpringBoot+SSM项目《苍穹》实战—(一)项目概述](https://blog.csdn.net/qq_20185737/article/details/131575898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值