首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Next.js & Ant Design Dragger:已部署实例上的文件上载失败

Next.js & Ant Design Dragger:已部署实例上的文件上载失败
EN

Stack Overflow用户
提问于 2020-02-26 20:48:52
回答 2查看 1.2K关注 0票数 3

我正在尝试用Next.js和Ant Design构建一个使用React的文件上传。

在localhost上,一切工作正常。当我部署实例并尝试上传文件时,我得到以下错误:

代码语言:javascript
复制
Request URL: https://my-app.my-team.now.sh/url/for/test/
Request Method: POST
Status Code: 405 
Remote Address: 34.65.228.161:443
Referrer Policy: no-referrer-when-downgrade

我使用的UI如下所示:

代码语言:javascript
复制
<Dragger {...fileUploadProps}>{renderImageUploadText()}</Dragger>

其中fileUploadProps为:

代码语言:javascript
复制
const fileUploadProps = {
  name: 'file',
  multiple: false,
  showUploadList: false,
  accept: 'image/png,image/gif,image/jpeg',
  onChange(info) {
    const { status } = info.file;
    if (status === 'done') {
      if (info.file.size > 2000000) {
        setUploadSizeError('File size is too large');
      } else {
        handleFieldValue(API_FORM_FIELDS.PICTURE, info);
      }
    } else if (status === 'error') {
      setUploadSizeError(`${info.file.name} file upload failed.`);
    }
  },
};

我想,这与Next.js的服务器端渲染有关吗?另一方面,它可能不会,因为当我导航到url/for/test时,它应该呈现在客户机上。

如何使用Ant Design和Next.js实现文件上传?

EN

回答 2

Stack Overflow用户

发布于 2020-04-01 11:32:21

通过将正确的action="https://www.mocky.io/v2/5cc8019d300000980a055e76"传递给<Upload/>组件,使其正常工作。

ANTD Upload组件必须发出POST请求才能上载文件。它或者向产生405URL当前url发出POST请求,或者向由action prop指定的url发出POST请求。https://www.mocky.io/v2/5cc8019d300000980a055e76作为此url工作。

票数 1
EN

Stack Overflow用户

发布于 2021-06-28 05:00:39

受到Trey的回答的启发(因为我不想将数据发送到我的域之外的任何地方),我创建了一个简单地返回成功的无操作<Upload>路由,然后将Ant Design api的action指向/api/noop

代码语言:javascript
复制
/* pages/api/noop.tsx */

import { NextApiRequest, NextApiResponse } from 'next'

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  res.status(200).end('noop')
}
代码语言:javascript
复制
/* Wherever I'm using <Upload /> */

<Upload
  ...otherProps
  action={'/api/noop'}
>

注意:这是特定于Next.js的,这使得创建接口路由变得很容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60414352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档