首先,在 React 方面,标题和描述应该没有问题,但是对于图像,您需要将图像编码为 Base64 字符串。是这样的。
getBase64 = (callback) => {
const fileReader = new FileReader();
fileReader.onload = () => {
console.log(fileReader.result);
};
fileReader.readAsDataURL(fileToLoad);
fileReader.onerror = (error) => {
console.log('Error :', error);
};
}
然后,在 Axios 上,将这 3 个参数连同一个 POST 请求一起发送。
对于 Rails,您需要设置可以读取 Base64 字符串的代码。通常,您可以使用Paperclip
或CarrierWave
gem 来添加图像附件。它看起来像这样。
property_image = listing.property_images.new(param_image)
if param_image[:file_data]
image_file = Paperclip.io_adapters.for(param_image[:file_data])
image_file.original_filename = param_image[:image_file_name]
image_file.content_type = "image/png"
property_image.image = image_file
end
private
def param_image
params.permit(:image, :image_file_name, :file_data)
end