clouflare-r2-file-upload
Version:
A React component for uploading files to Cloudflare R2
34 lines • 2.31 kB
JavaScript
// src/App.tsx
import React, { useState } from "react";
import FileUpload from "./components/FileUpload";
const App = () => {
const [formData, setFormData] = useState({
imageUrl: [],
});
const handleFormSubmit = (event) => {
event.preventDefault();
// Aquí podrías hacer una llamada a tu API para guardar la URL en la base de datos
console.log("Form submitted with image URL:", formData.imageUrl);
};
const handleInputChange = (urls) => {
setFormData({ ...formData, imageUrl: urls });
};
return (React.createElement("div", { className: "h-[100vh] w-full bg-white flex pl-20 bg-gray-400" },
React.createElement("div", { className: "w-40 h-40 bg-red-500" },
React.createElement(FileUpload, { classname: "w-fit h-36", handleInputChange: handleInputChange, title: "Upload to Cloudflare R2 multiple", subtitle: "Sub\u00EDtelo aqu\u00ED", choseTitle: "Attach File", style: "logo_box", changeImageName: true, IMG_DOMAIN: "https://hub.nexosync.xyz", BUCKET_NAME: "hub", REGION: import.meta.env.VITE_AWS_REGION, ACCESS_KEY_ID: import.meta.env.VITE_AWS_ACCESS_KEY_ID, SECRET_ACCESS_KEY: import.meta.env.VITE_AWS_SECRET_ACCESS_KEY, ENDPOINT: "https://b6d780b331caff85a50ddf58597c598b.eu.r2.cloudflarestorage.com", default_img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQoKQ39hic_XQKjeABQt0BUyY6A2K2qA10m5mMX4DpWYtSCf0Vf-oQJkbsMkhVIcrVl2bg&usqp=CAU", acceptFileTypesText: "IMAGES, PDF, DOC, TXT, DOCX no mas de 10MB", message: "Arrastra aca lo que deseas enviar", type: "multiple", acceptedFileTypes: [
"image/*",
// "application/pdf",
// ".doc",
// ".txt",
// ".docx",
] })),
JSON.stringify(formData.imageUrl),
React.createElement("form", { onSubmit: handleFormSubmit, className: "bg-red-500" },
React.createElement("input", { type: "text", name: "imageUrl",
// value={formData.imageUrl}
// onChange={handleInputChange}
placeholder: "Image URL", style: { width: "100%", marginTop: "10px" } }),
React.createElement("button", { type: "submit" }, "Submit"))));
};
export default App;
//# sourceMappingURL=App.js.map