[Route("WeatherForecast/Post")] [HttpPost] public IActionResult Post([FromForm] FileModel file) { try { string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", file.FileName); using (Stream stream = new FileStream(path, FileMode.Create)) { file.FormFile.CopyTo(stream); } return StatusCode(StatusCodes.Status201Created); } catch (Exception) { return StatusCode(StatusCodes.Status500InternalServerError); } }
<pre> namespace imageEditor3 { public class FileContext : DbContext { public DbSet<FileModel> FileModels { get; set; } } public class FileModel { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int FileId { get; set; } public string FileName { get; set; } public IFormFile FormFile { get; set; } } }
<pre>import React, { useState } from "react"; import axios from "axios"; export const FileUpload = () => { const [file, setFile] = useState(); const [fileName, setFileName] = useState(); //const [fileURL, setFileURL] = useState(); const SaveFile = (e) => { console.log(e.target.files[0]); setFile(e.target.files[0]); setFileName(e.target.files[0].name); //setFileURL(e.target.files[0].fileURL); }; const UploadFile = async (e) => { console.log(file); const formData = new FormData(); formData.append("formFile", file); formData.append("fileName", fileName); try { const res = await axios.post("WeatherForecast/WeatherForecast/post", formData); console.log(res); } catch (ex) { console.log(ex); } }; return ( <> <input type="file" onChange={SaveFile} /> <input type="button" value="upload" onClick={UploadFile} /> </> ); };
string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", file.FileName);
FileName
Path.Combine
wwwroot
Path.GetFileName
string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", Path.GetFileName(file.FileName));
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)