Răsfoiți Sursa

接受python图片

unknown 4 săptămâni în urmă
părinte
comite
f843e7778f
1 a modificat fișierele cu 132 adăugiri și 0 ștergeri
  1. 132 0
      application/api/controller/ProductController.php

+ 132 - 0
application/api/controller/ProductController.php

@@ -0,0 +1,132 @@
+<?php
+/**
+ * ThinkPHP5 文件上传控制器
+ * 图片上传接口
+ */
+
+namespace app\api\controller;
+
+use think\Controller;
+use think\Request;
+use think\facade\Env;
+
+class ProductController extends Controller
+{
+    /**
+     * 图片上传接口
+     * POST /api/product/uploadImage
+     * 
+     * @return \think\response\Json
+     */
+    public function uploadImage()
+    {
+        $file = $this->request->file('file');
+
+        if (empty($file)) {
+            return json([
+                'success' => false,
+                'message' => '没有接收到文件'
+            ]);
+        }
+
+        if (is_array($file)) {
+            $file = $file[0];
+        }
+
+        $originalName = $file->getInfo('name');
+        $suffix = strtolower(pathinfo($originalName, PATHINFO_EXTENSION));
+
+        $allowedSuffix = ['jpg', 'png', 'gif', 'jpeg', 'webp'];
+        if (!in_array($suffix, $allowedSuffix)) {
+            return json([
+                'success' => false,
+                'message' => '不支持的图片格式'
+            ]);
+        }
+
+        $fileSize = $file->getSize();
+        if ($fileSize > 10485760) {
+            return json([
+                'success' => false,
+                'message' => '文件大小超过10MB限制'
+            ]);
+        }
+
+        $year = date('Y');
+        $month = date('m');
+        $day = date('d');
+
+        $uploadPath = ROOT_PATH . 'public' . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $year . $month . $day . DIRECTORY_SEPARATOR;
+
+        if (!is_dir($uploadPath)) {
+            mkdir($uploadPath, 0755, true);
+        }
+
+        $fileName = time() . '.' . $suffix;
+
+        $info = $file->move($uploadPath, $fileName);
+
+        if ($info) {
+            $relativePath = 'uploads/' . $year . $month . $day . '/' . $fileName;
+            $fileUrl = $this->request->domain() . '/' . str_replace('\\', '/', $relativePath);
+
+            return json([
+                'success' => true,
+                'message' => '上传成功',
+                'data' => [
+                    'url' => $fileUrl
+                ]
+            ]);
+        } else {
+            return json([
+                'success' => false,
+                'message' => $file->getError()
+            ]);
+        }
+    }
+
+
+   
+    /**
+     * 添加产品接口(示例)
+     * POST /api/product/productAdd
+     * 
+     * @return \think\response\Json
+     */
+    public function productAdd()
+    {
+        // 获取请求数据
+        $data = $this->request->param();
+        
+        // 验证数据(示例)
+        if (empty($data['code'])) {
+            return json([
+                'success' => false,
+                'message' => '产品编码不能为空'
+            ]);
+        }
+        
+        $res = [
+            'product_name' => $data['name'],
+            'product_code' => $data['code'],
+            'product_img' => $data['image'],
+            'createTime' => date('Y-m-d H:i:s'),
+            'create_name' => '系统摄像头',
+        ];
+        
+        $res = db('product')->insert($res);
+        if (!$res) {
+            return json([
+                'success' => false,
+                'message' => '添加失败'
+            ]);
+        }
+        
+        return json([
+            'success' => true,
+            'message' => '添加成功',
+            'data' => $data
+        ]);
+    }
+}
+?>