tp6实现文件上传接口(单文件上传)

返回给前端的接口格式:
在这里插入图片描述

路由:

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Route;Route::post('goods/upload_goods', 'Goods/uploadGoods');
//第一个参数地址栏上写的,第二个参数第一个参数所指向的控制器/方法

sql:

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- 主机: localhost
-- 生成日期: 2022-05-25 12:57:32
-- 服务器版本: 5.7.26
-- PHP 版本: 7.3.4SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;--
-- 数据库: `kkk`
---- ----------------------------------------------------------
-- 表的结构 `goods`
--CREATE TABLE `goods` (`id` int(10) UNSIGNED NOT NULL,`goods_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,`goods_img` varchar(200) COLLATE utf8_unicode_ci NOT NULL,`cat_id` int(11) NOT NULL,`goods_price` decimal(8,2) NOT NULL,`is_show` tinyint(4) NOT NULL,`goods_introduce` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;--
-- 转存表中的数据 `goods`
--INSERT INTO `goods` (`id`, `goods_name`, `goods_img`, `cat_id`, `goods_price`, `is_show`, `goods_introduce`) VALUES
(2, '纤伊寻雪纺连衣裙女2020春夏新款韩版碎花裙子时尚V领很仙的小个子连衣裙 白花色 L', '/storage/goods/f6/655e2bed6b7bea027fb69a3c11a27c.jpg', 8, '0.01', 1, '  <p>商品详情</p><p><img src=\"/storage/goods/ed\\e51d8a0f3fad9ddea11880e2903ab1.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/9e\\3a9cb6f37f31b35076c1bb6cfab249.jpg\" style=\"max-width:100%;\"></p>'),
(3, '法国KJ蕾丝聚拢文胸套装刺绣薄款无钢圈插片式调整型小胸内衣舒适透气文胸 聚拢虾粉色1 75B=34B(配内裤)', '/storage/goods/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 8, '0.01', 1, ' <p>商品详情</p><p><img src=\"/storage/goods/13\\2ad82b0d415a8dcab51e525925212a.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/80\\a81fa79b6a0f0f84ba705cb31aa32d.jpg\" style=\"max-width:100%;\"></p><p><br></p>'),
(4, '浪莎打底袜 120D天鹅绒收腹提臀美腿显瘦加档连裤袜 1双 肤色 120D收腹提臀', '/storage/goods/f6\\655e2bed6b7bea027fb69a3c11a27c.jpg', 10, '56.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/63\\ebb026ad52963f53e0ae851d6e42f7.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/ed\\e51d8a0f3fad9ddea11880e2903ab1.jpg\" style=\"max-width:100%;\"></p>'),
(5, '纤伊寻雪纺连衣裙女2020春夏新款韩版碎花裙子时尚V领很仙的小个子连衣裙 白花色 L', '/storage/goods/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 10, '89.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/80\\a81fa79b6a0f0f84ba705cb31aa32d.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/9e\\3a9cb6f37f31b35076c1bb6cfab249.jpg\" style=\"max-width:100%;\"></p>'),
(6, 'Redmi 8 5000mAh大电量 大字体大音量大内存 3D四曲面机身 AI双摄 骁龙八核处理器 AI人脸解锁 3GB+32GB 碳岩灰 游戏智能手机 小米', '/storage/goods/b4\\a403d9874ed426bd5210a2f42c33f0.jpg', 11, '789.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/63\\ebb026ad52963f53e0ae851d6e42f7.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/f7\\b1f9e85e6b945be48e174f9260b909.jpg\" style=\"max-width:100%;\"></p>'),
(7, 'OUHEN轻奢品牌女装 小个子印花连衣裙女2020夏季新款遮肚减龄气质时尚收腰显瘦短款裙子 白色黑花 160/M', '/storage/goods/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 10, '56.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/ed\\e51d8a0f3fad9ddea11880e2903ab1.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/6f\\9c4f90bae503b687b9776fd2170e93.jpg\" style=\"max-width:100%;\"></p>'),
(8, '浪莎打底袜 120D天鹅绒收腹提臀美腿显瘦加档连裤袜 1双 肤色 120D收腹提臀', '/storage/goods/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 10, '345.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/13\\2ad82b0d415a8dcab51e525925212a.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/6f\\9c4f90bae503b687b9776fd2170e93.jpg\" style=\"max-width:100%;\"></p>'),
(9, '绣球花盆栽室内外阳台绿植花卉绣球花苗庭院地栽植物变色无尽夏重瓣八仙花苗四季种植循环开花耐寒幸运花 无尽夏 2年苗', '/storage/goods/b4\\a403d9874ed426bd5210a2f42c33f0.jpg', 11, '89.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/ed\\e51d8a0f3fad9ddea11880e2903ab1.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/63\\ebb026ad52963f53e0ae851d6e42f7.jpg\" style=\"max-width:100%;\"></p>'),
(10, '浪莎打底袜 120D天鹅绒收腹提臀美腿显瘦加档连裤袜 1双 肤色 120D收腹提臀', '/storage/goods/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 11, '899.00', 1, '<p>商品详情</p><p><img src=\"/storage/goods/ed\\e51d8a0f3fad9ddea11880e2903ab1.jpg\" style=\"max-width:100%;\"></p><p><img src=\"/storage/goods/9e\\3a9cb6f37f31b35076c1bb6cfab249.jpg\" style=\"max-width:100%;\"></p>'),
(11, '666', '/storage/goods/f6\\9f50aed16fc629c65f6526b017296a.png', 1, '666.00', 1, '');--
-- 转储表的索引
----
-- 表的索引 `goods`
--
ALTER TABLE `goods`ADD PRIMARY KEY (`id`);--
-- 在导出的表使用AUTO_INCREMENT
----
-- 使用表AUTO_INCREMENT `goods`
--
ALTER TABLE `goods`MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
COMMIT;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

控制器:

use think\Request;//引用请求类文件
use think\facade\View;//引用视图类文件
use think\facade\Db;//引用数据库链接类文件
//那么问题来了,为什么呢?因为举个例子。你不用电脑怎么写代码呢
public function uploadGoods(Request $request){//必须是请求才能进去的函数。比如postman.$file = $request->file('image');//数据库goods里面有个字段是image。存储图片的哈$savename = \think\facade\Filesystem::putFile( 'goods', $file,'md5');//存储在public/storage/goods目录下的图片return json(['code'=>1, 'msg'=>'上传成功', 'data'=> ['url'=>['/storage/'.$savename]]]);}

postman:
在这里插入图片描述
config/filesystem.php文件。粘贴复制

<?phpreturn [// 默认磁盘'default' => env('filesystem.driver', 'public'),//存储在public目录下// 磁盘列表'disks'   => ['local'  => ['type' => 'local','root' => app()->getRuntimePath() . 'storage',],'public' => [// 磁盘类型'type'       => 'local',// 磁盘路径'root'       => app()->getRootPath() . 'public/storage',//public/storage目录下.然后还要什么目录。具体看代码操作// 磁盘路径对应的外部URL路径'url'        => '/storage',// 可见性'visibility' => 'public',],// 更多的磁盘配置信息],
];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31753.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用postman测试文件上传

文件上传功能的关键--->formData的使用 FormData提供一种表示表单数据的键值对的构造方式&#xff0c;实现表单数据的序列化&#xff0c;从而减少表单元素的拼接。 用postman测试文件上传&#xff08;注意form-data&#xff09;

Postman 如何调用文件上传下载接口

文件导入导出是管理后台的通用功能,所以在接口写好后在没有前端页面使用Postman进行接口调用测试接口功能成为一个选择。 导出 在我们输入接口地址&#xff0c;token等候 点击send 发现下载的成为了乱码(如下图) 这明显不符合我们的预期期望,在send按钮旁边下拉框 选择Send …

chatgpt赋能python:Python如何将图片文件上传至服务器

Python如何将图片文件上传至服务器 在现代网站设计中&#xff0c;图片的使用非常重要&#xff0c;因此将图片文件上传至服务器是一个很常见的操作。Python是一种广泛使用的编程语言&#xff0c;其拥有强大的图像处理能力&#xff0c;并提供了丰富的库来实现文件的上传和下载。…

postman测试上传文件

1、PostMan测试接口实现上传文件 第一步&#xff1a; 打开postman&#xff0c;将上传方式改为POST&#xff0c;再点击下【Body】 第二步&#xff1a; 然后&#xff0c;我们点击里面的【form-data】选项(如图所示)。 第三步&#xff1a; 然后&#xff0c;在key的输入框里&#…

太强啦!!!ChatGPT 能上传文件了,能执行 Python 代码啦!

ChatGPT又出试验型新模式&#xff0c;不少网友陆续收到代码解释器Alpha测试资格。 ​ 简单来说&#xff0c;这个模式提供两个功能&#xff1a;执行Python代码&#xff0c;接受文件上传下载。 为什么是这两个功能的组合&#xff1f; 可以看目前最火的一条测试结果&#xff0c…

chatgpt赋能python:Python上传文件:基本介绍和操作指南

Python上传文件&#xff1a;基本介绍和操作指南 Python的近年来在数据科学&#xff0c;机器学习和人工智能等领域越来越受欢迎。Python具有跨平台性和易于编写的功能&#xff0c;因此&#xff0c;大量的Python项目需要上传文件。该文章将介绍Python上传文件的操作指南。 Pyth…

回顾 | 女性 AI 专场 - 女性眼中的 ChatGPT

点击蓝字&#xff0c;关注我们 ChatGPT 的到来掀起了 AI 技术的新浪潮&#xff0c;更是在全球牵动了巨大的人工智能变革。而 AI 领域的从业者当中&#xff0c;当然不乏很多优秀女性从业者的身影。 又是一年3月8日&#xff0c;借此契机&#xff0c;我们想要与广大女性开发者们&a…

Facebook频繁封号,如何解封?

如果你的Facebook账号不幸被封的话&#xff0c;那该如何来解封呢&#xff0c;别着急往下看。 如果是暂时被封的情况呢&#xff0c;可以尝试以下操作&#xff1a; 第一步&#xff0c;清除浏览器缓存和历史&#xff0c;再尝试登录你的Facebook账号。 第二步&#xff0c;登录Faceb…

AGI智能新时代,技术驱动营销数字化重组|数说故事D3峰会盛况

万物向新&#xff0c;数字重组。 3月29日&#xff0c;以「REMIX——重组数字未来&#xff0c;创享无限可能」为主题的数说故事第六届D3智能营销峰会在广州白云国际会议中心圆满举办。本届峰会由数说故事携手GDMS联合主办&#xff0c;数说故事作为专场合作伙伴&#xff0c;与50…

我用ChatGPT写2023年北京卷高考作文

题目一 “续航”一词&#xff0c;原指连续航行&#xff0c;今天在使用中被赋予了新的含义&#xff0c;如为青春续航、科技为经济发展续航等。 请以“续航”为题目&#xff0c;写一篇议论文。 要求&#xff1a;论点明确&#xff0c;论据充实&#xff0c;论证合理&#xff1b;…

使用PointNet++测试分类自己的数据集并可视化

我这里PointNet的代码用的是pytorch版本的&#xff0c;链接为 https://github.com/yanx27/Pointnet2_pytorch 将自己的数据集格式修改为和modelnet40_normal_resampled数据集格式一样。 由于源码中测试脚本只是输出了测试数据集的分类精确度&#xff0c;且测试数据集同样的是有…

【分享NVIDIA GTC 23大会干货】干货通过技术发展平衡看待气候变化数据生产和用户需求[S51358]

【分享NVIDIA GTC 23大会干货】通过技术发展平衡看待气候变化数据生产和用户需求[S51358] 通过技术发展平衡看待实现气候变化数据的生产和用户需求数字孪生系统和气候信息为什么我们需要用数字孪生系统来适应气候变化呢&#xff1f;要求得不到满足当前未来气候数据来源存在问题…

软件测试的黑盒测试,输入年月日输出下一天,JavaScript版本

题目7&#xff1a;编写以下程序&#xff1a;该程序有三个输入变量month、day、year&#xff08;month、day和year均为整数值&#xff0c;并且满足&#xff1a;1≤month≤12、1≤day≤31和1900≤year≤2050)&#xff0c;分别作为输入日期的月份、日、年份&#xff0c;通过程序可…

仅需要26个字节的Hello World程序(可能是最小的Hello World了)

前言 大多数初学者编写的第一个程序都是输出一段文字&#xff0c;最常见的是“Hello World&#xff01;”。大家在编写完成之后&#xff0c;除了检查语法和逻辑之外&#xff0c;可能忽略了另一个方面的问题&#xff0c;那就是输出文件的大小。以C语言为例&#xff0c;我们编写…

ChatGPT:3. 使用OpenAI创建自己的AI网站:2. 使用 flask web框架快速搭建网站主体

使用OpenAI创建自己的AI网站 如果你还是一个OpenAI的小白&#xff0c;有OpenAI的账号&#xff0c;但想调用OpenAI的API搞一些有意思的事&#xff0c;那么这一系列的教程将仔细的为你讲解如何使用OpenAI的API制作属于自己的AI网站。博主只能利用下班时间更新&#xff0c;进度慢…

New Bing 正式向所有用户开放,无需申请即可体验

文章原文&#xff1a;New Bing 正式向所有用户开放&#xff0c;无需申请即可体验 - WINISLE 从今天起&#xff0c; New Bing 已经向所有用户开放&#xff01; 尽管&#xff0c;微软已经全面放开了 New Bing 体验资格&#xff0c;但由于中国地区的一些合规问题&#xff0c;国内…

国内使用必应的正确打开方式

捣腾了两天终于体验上了bing&#xff0c;目前认为是最稳定的&#xff0c;下面是教程 前提&#xff0c;使用魔法&#xff0c;否则会跳转至国内地址正常使用microsoft edge浏览器即可&#xff0c;看其他人说必须下载最新版&#xff0c;或者下载dev版本。普通版本即可。浏览器访问…

人工智能和剪映配合提升微课效率

今天我们介绍如何让人工智能帮助我们制作微课或者批量生成短视频。 工具&#xff1a; 人工智能软件&#xff08;ChatGPT、文心一言、Claude等&#xff09; 剪映专业版 1.确定主体和生成内容 我们需要想好视频主题&#xff0c;并让人工智能帮助我们生成内容。如图&#xff0c;这…

ideal使用chatGPT

先在浏览器登录OPAI&#xff0c;在点击第二个连接获取token&#xff0c;把页面上的JSON字符串复制到ideal中

篡位者OpenAI偷家谷歌,CEO怒发Bard调教指南:别慌,咱向来是弯道超车

视学算法报道 编辑&#xff1a;编辑部 【导读】谷歌被唱衰多日&#xff0c;劈柴终于出手了&#xff01;他发备忘录鼓励员工&#xff1a;别怕&#xff0c;「迟到也能赢」是咱们公司老传统了。 谷歌CEO劈柴反击了&#xff01;他告诉员工&#xff1a;别慌&#xff0c;咱们迟到也…