--- order: 10 title: zh-CN: 上传前转换文件 en-US: Transform file before request --- ## zh-CN 使用 `beforeUpload` 转换上传的文件(例如添加水印)。 ## en-US Use `beforeUpload` for transform file before request such as add a watermark. ```tsx import { UploadOutlined } from '@ant-design/icons'; import type { UploadProps } from 'antd'; import { Button, Upload } from 'antd'; import React from 'react'; const props: UploadProps = { action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76', listType: 'picture', beforeUpload(file) { return new Promise(resolve => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => { const img = document.createElement('img'); img.src = reader.result as string; img.onload = () => { const canvas = document.createElement('canvas'); canvas.width = img.naturalWidth; canvas.height = img.naturalHeight; const ctx = canvas.getContext('2d')!; ctx.drawImage(img, 0, 0); ctx.fillStyle = 'red'; ctx.textBaseline = 'middle'; ctx.font = '33px Arial'; ctx.fillText('Ant Design', 20, 20); canvas.toBlob(result => resolve(result as any)); }; }; }); }, }; const App: React.FC = () => ( ); export default App; ```