如何解决使用 FormData 从 React 应用程序上传 Sailsjs 文件不起作用
let formData = new FormData()
console.log(values);
await formData.append('profile_picture[]',values.profile_picture.rawFile,values.profile_picture)
await formData.append('email_address',values.email_address)
await formData.append('full_name',values.full_name)
await formData.append('password',values.password)
await formData.append('confirm_password',values.confirm_password)
// console.log(formData);
await fetch('http://localhost:1337/api/moderators',{
body:formData,method:'POST',credentials:'include'
})
我的 Sailjs 控制器
const { StatusCodes } = require("http-status-codes");
module.exports = {
friendlyName: 'Create moderator',description: 'Functon used to create a Moderator',files: ["profile_picture"],inputs: {
email_address: {
type: "string",description: "The email address foser.",required: true,unique: true,isEmail: true,maxLength: 200,example: "carol.reyna@microsoft.com",},password: {
type: "string",description: "Password of the User",protect: true,confirm_password: {
type: "string",full_name: {
type: "string",description: "Full representation of the user's name",maxLength: 120,example: "Lisa Microwave van der Jenny",profile_picture: {
type: "ref",required: false,description: "File Data",exits: {
invalid: {
responseType: "badRequest",description:
"The provided fullName,password and/or email address are invalid.",extendedDescription:
"If this request was sent from a graphical user interface,the request " +
"parameters should have been validated/coerced _before_ they were sent.",emailAlreadyInUse: {
statusCode: StatusCodes.CONFLICT,description: "The provided email address is already in use.",noFileAttached: {
description: "No file was attached.",responseType: "badRequest",tooBig: {
description: "The file is too big.",fn: async function (inputs) {
// let { profile_picture } = inputs;
console.log(this.req.file('profile_picture'))
await this.req.file('profile_picture').upload(
{
dirname: require("path").resolve(
sails.config.appPath,"assets/images/uploads/test"
),maxBytes: 3000000,async (err,result) => {
console.log(err,result)
}
);
return;
}
};
如果我从控制器中删除输入,它可以正常工作
this.req.file('profile_picture').upload()..
但我无法通过使用输入 {}
使用sailsjs 提供的自动验证我希望能够使用输入,同时希望使用
上传图像inputs.profile_picture.upload()...
当我使用 ejs 表单时,代码工作得很好,但在 React 中却没有,它迫使我删除输入验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。