Browse Source

feat: 上传图片接口

zhangyuting 5 years ago
parent
commit
2985dc9ea7

+ 19 - 11
src/app/api/miniAd.ts

@@ -77,28 +77,36 @@ export class MiniAd {
       if (!params) {
         throw new Error('not found params')
       }
+      const image = ctx.request.files.image_file
+      if (Array.isArray(image)) {
+        throw new Error('只能是一张图片')
+      }
       const form = new FormData()
-      // let filename = await Encrypt.md5(Random.number(0, 999999).toString())
-      // let fileMime = 'image/png'
-      form.append('token', 1242207897)
+      form.append('f', 'json')
+      form.append('action', 'upload_generic')
+      form.append('is_single', '1')
+      form.append('check', '0')
+      form.append('max_size', '102400')
+      form.append('option', 'syn_mlib')
+      form.append('id', 'WU_FILE_0')
+      form.append('name', image.name)
+      form.append('type', image.type)
+      form.append('lastModifiedDate', image.lastModifiedDate.toLocaleString())
+      form.append('size', image.size)
+      form.append('chunk', '0')
+      form.append('chunks', '1')
       Object.entries(params).forEach(item => {
         const k = item[0]
         const v = item[1]
         form.append(k, v)
       })
-      const image = ctx.request.files.image_file
-
       const path = image.path
-
-      form.append('image_file', fs.readFileSync(path, { encoding: 'binary' }), { contentType: params.type, filename: params.name })
-
-      console.log(form)
+      form.append('image_file', fs.createReadStream(path), { contentType: params.type, filename: params.name })
       const data = await this.service.snsImage(form)
       if (data) {
-        console.log(data.headers, data.body)
         ret.code = 200
         ret.msg = 'ok'
-        // ret.data = data
+        ret.data = data
       }
     } catch (e) {
       console.log(e)

+ 0 - 1
src/app/service/miniAdBaseService.ts

@@ -20,7 +20,6 @@ export class MiniAdBaseService {
             options.headers['user-agent'] = 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'
             const { searchParams } = options.url
             searchParams.set('token', token)
-            console.log(options.url.toString(), options.headers)
           }
         ],
         afterResponse: [

+ 3 - 3
src/app/service/miniAdCampaignService.ts

@@ -35,11 +35,11 @@ export class MiniAdCampaignService extends MiniAdBaseService {
   }
 
   // 上传创意图片
-  async snsImage (form:FormData):Promise<Response> {
+  async snsImage (form:FormData):Promise<ISnsImageResponse> {
     return this.api.post<ISnsImageResponse>('promotion/landingpage/snsimage', {
       body: form,
-      decompress: false
-      // resolveBodyOnly: true
+      decompress: false,
+      resolveBodyOnly: true
     })
   }