React dropzone özelliğini kullanarak, onDrop
geri bildirimini kullanarak görüntüye başarıyla eriştim. Ancak, görüntüyü sunucuma göndererek, bir S3 paketine kaydederek ve imzalı bir URL'yi istemciye geri göndererek Amazon S3'e yüklemeye çalışıyorum.React dropzone, nasıl resim yüklenir?
Şimdiye kadar sahip olduğum bilgilerle bunu yapamıyorum ve dokümanlar bunu bilgimle paylaşmıyor gibi görünmüyor.
onDrop
export function saveImageToS3 (files, user) {
file = files[0]
// file.name -> filename.png
// file -> the entire file object
// filepreview -> blob:http:localhost:3000/1ds3-sdfw2-23as2
return {
[CALL_API] : {
method:'post',
path: '/api/image',
successType: A.SAVE_IMAGE,
body: {
name: file.name,
file: file,
preview: file.preview,
username: user
}
}
}
}
Ancak, benim sunucuya aldığımda, bunu sadece dan başvuruda bulunulur (bu damla görüntüyü kaydetmek nasıl emin değilim tarayıcı.)
server.post('/api/image', (req, res) => {
// req.body.preview --> blob:http://localhost:3000/1ds3-sdfw2-23as2
// req.body.file -> {preview:blob:http://localhost:3000/1ds3-sdfw2-23as2}, no other properties for some reason
})
. Bir bayt almak için bir FileReader/ArrayBuffer kullanarak blob'u okumalısınız - bunun nasıl yapılacağına dair bir sürü örnek kod. Ama biraz aradığımda, belki de size yardımcı olabilir: https://www.npmjs.com/package/react-dropzone-s3-uploader –
başkaları için - aynı zamanda multer sunucu tarafını kullanmak zorunda kaldım multipart form verilerini kaydetmediğinden Nesneleri oluşturmak için aşağıdaki formülleri yeni FormData ile kullandım ve ardından düğümde app.post ('/ api/image', upload.single ('file'), function() {...}) olarak kullanıldı. onunla ilgilen. –