Rails ActiveStorage将图像文件从React Native客户端上传到Cloudinary

如何使用activeStorage和Cloudinary将图像附加到模型上?我一直在尝试在UserType.rb文件中遵循以下方法。

class Hash < Types::BaseInputObject
  argument :_parts,[String],required: false
end

argument :image,Hash,required: false
argument :image_name,String,required: false


decoded_image = Base64.decode64(image)
image_io = StringIO.new(decoded_image)

@user.image.attach(io: image,filename: 'test')
@user.save

从客户那里得到的照片赞美了

 "variables"=>{"image"=>{"_parts"=>[["image",{"image"=>"file:///Users/hugohouyez/library/Developer/CoreSimulator/Devices/B25284C3-EE82-4DD3-AF6D-309F8CA7C608/data/Containers/Data/Application/C5AB683D-EAA5-482B-B52E-60D98B6753CE/Documents/images/79AD6A23-CDF9-451D-AC6B-ED3FE045336E.jpg"

但是,我无法使其正常运行。我收到以下错误消息:

  

错误:GraphQL错误:为_parts.0提供了Hash类型的变量图像无效值(无法强制转换值[“ image”,“ {\” image \“ => \” file:...

在客户端上,代码看起来像这样

const [createUser] = useMutation(CREATE_USER);

const createUserHook = ({image,image_name,first_name}) => {
let fileType = image[image.length - 1];
let formData = new FormData();
formData.append('image',{
  image,name: `photo.${fileType}`,type: `image/${fileType}`,});
return createUser({ variables: { image: formData,image_name: image_name,first_name: first_name }})
}

感谢您的帮助,因为我找不到任何官方文档。

ZENGMINGMIN2009 回答:Rails ActiveStorage将图像文件从React Native客户端上传到Cloudinary

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3156655.html

大家都在问