logo

该视频仅会员有权观看

立即开通课程「Next.js 前端应用开发实践」权限。

¥
199
/ 年

准备上传文件需要的数据与方法

  • 正在编写代码中,准备了两个数据结构来声明文件:filesad file,使用 useState 来设置类型为 fivenow,代表用户要上传的文件。
  • 创建了一个名为 image view URL 的数据结构和一个对应的 setImagePreviewURL 函数,使用 useState 默认为空白字符串,用于存储选中图片的预览地址。
  • 设置了一个 file input,使用 useRef,默认值为 null,类型为 HTMLInputElement
  • 当用户选择图片后,可以创建一个图片预览,创建 createImagePreview 函数,接收类型为 File 的参数,在函数中声明并初始化一个 FileReader,使用 readAsDataURL 方法来读取文件数据并设置 onload 事件处理函数,其中 setImagePreviewURL 将结果设置为字符串。
  • 定义了一个上传图片文件的方法 createFile,标记为 async,接收 file 参数(类型为 File)和 postID 参数(类型为 Number),在函数内声明一个新的 FormData 实例并添加 file 字段,之后使用 API HTTP client 发送 POST 请求到 files 接口,并根据 response.status 判断文件是否上传成功,然后清空相关状态和输入值。
  • 在发布内容后,如果文件存在,使用 createFile 方法请求上传该文件。
  • 最后在 hook 中返回 file, setFile, fileInput, imagePreviewURL, setImagePreviewURL, createImagePreview, 和 createFile