diff --git a/actions/index.js b/actions/index.js index 8d110ab1..d8274686 100644 --- a/actions/index.js +++ b/actions/index.js @@ -904,3 +904,36 @@ export const createAccount = (formValues) => { console.log("this serror", error); }); }; + +export const uploadFiles = (formValues) => { + var data = formValues; + var queryUrl = "/api/uploads"; + var config = { + method: "post", + url: queryUrl, + data: data, + }; + + // const config = { + // method: "post", + // url: queryUrl, + // data: data, + // headers: { "content-type": "multipart/form-data" }, + // onUploadProgress: (event) => { + // console.log( + // `Current progress:`, + // Math.round((event.loaded * 100) / event.total) + // ); + // }, + // }; + + console.log(config); + return axios(config) + .then((res) => { + // console.log("posted ", res.data); + return res.data; + }) + .catch((error) => { + console.log("this serror", error); + }); +}; diff --git a/pages/api/uploads.js b/pages/api/uploads.js new file mode 100644 index 00000000..377d6f70 --- /dev/null +++ b/pages/api/uploads.js @@ -0,0 +1,36 @@ +import nextConnect from "next-connect"; +import multer from "multer"; + +const upload = multer({ + storage: multer.diskStorage({ + destination: "./public/uploads", + filename: (req, file, cb) => cb(null, file.originalname), + }), +}); + +const apiRoute = nextConnect({ + onError(error, req, res) { + console.log("booo", req.data); + + res.status(501).json({ + error: `Sorry something Happened! ${error.message}`, + }); + }, + onNoMatch(req, res) { + res.status(405).json({ error: `Method '${req.method}' Not Allowed` }); + }, +}); + +apiRoute.use(upload.array("fileList")); + +apiRoute.post((req, res) => { + res.status(200).json({ data: "success" }); +}); + +export default apiRoute; + +export const config = { + api: { + bodyParser: false, // Disallow body parsing, consume as stream + }, +};