> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 上传文件

> 上传文件用于发送消息时使用，支持图片、文档、音频和视频的多模态理解。上传的文件仅供当前终端用户使用。



## OpenAPI

````yaml /zh/api-reference/openapi_completion.json post /files/upload
openapi: 3.0.1
info:
  title: 文本生成型应用 API
  description: 文本生成型应用提供无会话支持，适用于翻译、文章撰写、摘要总结 AI 等场景。
  version: 1.0.0
servers:
  - url: https://{api_base_url}
    description: 文本生成型应用 API 的基础 URL。自托管部署时，替换为你的 API 基础 URL。
    variables:
      api_base_url:
        default: api.dify.ai/v1
        description: API 基础 URL 的主机与路径，不含 `https://` 前缀。
security:
  - ApiKeyAuth: []
tags:
  - name: 文本生成
    description: 文本生成相关操作。
  - name: 文件操作
    description: 文件管理相关操作。
  - name: 终端用户
    description: 终端用户信息相关操作。
  - name: 消息反馈
    description: 用户反馈相关操作。
  - name: 语音与文字转换
    description: 语音转文字和文字转语音相关操作。
  - name: 应用配置
    description: 获取应用设置和信息的操作。
paths:
  /files/upload:
    post:
      tags:
        - 文件操作
      summary: 上传文件
      description: 上传文件用于发送消息时使用，支持图片、文档、音频和视频的多模态理解。上传的文件仅供当前终端用户使用。
      operationId: uploadFile
      requestBody:
        description: 文件上传请求。需要 multipart/form-data 格式。
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - user
              properties:
                file:
                  type: string
                  format: binary
                  description: 要上传的文件。支持的类型包括图片、文档、音频和视频。
                user:
                  type: string
                  description: >-
                    用户标识符，由开发者定义的规则生成，必须在应用内唯一。Service API 与 WebApp 的用户 ID
                    相互独立，即使取值相同也不指向同一用户。
      responses:
        '201':
          description: 文件上传成功。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadResponse'
              examples:
                uploadSuccess:
                  summary: 响应示例
                  value:
                    id: a1b2c3d4-5678-90ab-cdef-1234567890ab
                    name: product-photo.png
                    size: 204800
                    extension: png
                    mime_type: image/png
                    created_by: f1e2d3c4-b5a6-7890-abcd-ef1234567890
                    created_at: 1705407629
                    preview_url: null
                    source_url: null
                    original_url: null
                    user_id: f1e2d3c4-b5a6-7890-abcd-ef1234567890
                    tenant_id: 11223344-5566-7788-99aa-bbccddeeff00
                    conversation_id: null
                    file_key: uploads/product-photo.png
        '400':
          description: |-
            - `no_file_uploaded` : 请求中未提供文件。
            - `too_many_files` : 每次请求仅允许上传一个文件。
            - `filename_not_exists_error` : 上传的文件没有文件名。
          content:
            application/json:
              examples:
                no_file_uploaded:
                  summary: no_file_uploaded
                  value:
                    status: 400
                    code: no_file_uploaded
                    message: Please upload your file.
                too_many_files:
                  summary: too_many_files
                  value:
                    status: 400
                    code: too_many_files
                    message: Only one file is allowed.
                filename_not_exists_error:
                  summary: filename_not_exists_error
                  value:
                    status: 400
                    code: filename_not_exists_error
                    message: The specified filename does not exist.
        '413':
          description: '`file_too_large` : 文件大小超出限制。'
          content:
            application/json:
              examples:
                file_too_large:
                  summary: file_too_large
                  value:
                    status: 413
                    code: file_too_large
                    message: File size exceeded.
        '415':
          description: '`unsupported_file_type` : 不允许的文件类型。'
          content:
            application/json:
              examples:
                unsupported_file_type:
                  summary: unsupported_file_type
                  value:
                    status: 415
                    code: unsupported_file_type
                    message: File type not allowed.
components:
  schemas:
    FileUploadResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: 唯一文件 ID。
        name:
          type: string
          description: 文件名。
        size:
          type: integer
          description: 文件大小（字节）。
        extension:
          type: string
          nullable: true
          description: 文件扩展名。
        mime_type:
          type: string
          nullable: true
          description: 文件的 MIME 类型。
        created_by:
          type: string
          format: uuid
          nullable: true
          description: 上传文件的用户 ID。
        created_at:
          type: integer
          format: int64
          description: 上传时间戳（Unix 纪元秒）。
        preview_url:
          type: string
          nullable: true
          description: 文件的预览 URL。
        source_url:
          type: string
          nullable: true
          description: 文件的源 URL。
        original_url:
          type: string
          nullable: true
          description: 文件的原始 URL。
        user_id:
          type: string
          format: uuid
          nullable: true
          description: 关联的用户 ID。
        tenant_id:
          type: string
          format: uuid
          nullable: true
          description: 关联的租户 ID。
        conversation_id:
          type: string
          format: uuid
          nullable: true
          description: 关联的会话 ID。
        file_key:
          type: string
          nullable: true
          description: 文件的存储键。
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        API Key 认证。对于所有 API 请求，请在 `Authorization` HTTP 头中包含您的 API Key，并加上
        `Bearer ` 前缀。示例：`Authorization: Bearer {API_KEY}`。**强烈建议将 API Key
        存储在服务端，不要在客户端共享或存储，以避免 API Key 泄漏导致严重后果。**

````