[WIL]ミニプロジェクト(FormDataを使用して画像urlを他のコンテンツとともにサーバに送信with.AXIOS)
18782 ワード
FormDataを使用して画像urlを他のコンテンツとともにサーバに送信
//POSTWRITE.js
const [imageUrl, setImageUrl] = React.useState(""); //보내는 image
const [title, setTitle] = React.useState("");
const [content, setContent] = React.useState("");
const [category, setCategory] = React.useState("");
const [price, setPrice] = React.useState(0);
const changeContent = (e) => {
setContent(e.target.value);
}
const changePrice = (e) => {
setPrice(e.target.value);
}
const changeTitle = (e) => {
setTitle (e.target.value);
}
const changeCategory = (e) => {
setCategory(e.target.value);
}
const changeImageUrl = (e) => {
setImageUrl(e.target.files[0]);
}
const submit = () => {
if(imageUrl === "" || title === "" || category === "" || content === "" || price === "" ){
alert('모든 사항을 기입해주세요.');
return;
}else{
dispatch(PostActions.addPost(imageUrl, title, category, content, price));
}
<input type="text" id="title" name="title" placeholder="글 제목" onChange={changeTitle}/> ...
<input id="image" name="image" type="file"
onChange={(e) => {changeImageUrl(e);}}/>
<input id="price" name="price" className="has-prefix" type="number" placeholder="가격 (선택사항)"
onChange={changePrice}/>
//post.js (redux store)
const addPost = (imageUrl, title, category, content, price) => {
const formData = new FormData();
formData.append("title", title);
formData.append("category", category);
formData.append("content", content);
formData.append("price", price);
formData.append("image", imageUrl);
return async function (dispatch, getState, {history}){
try{
await axios.post("http://----server url ----/api/write", formData, {
headers: {
Authorization: `BEARER ${sessionStorage.getItem("token")}`
},
},
{ withCredentials: true } // cors Error 방지
);
window.alert('게시글 작성을 성공하였습니다.');
history.replace('/');
}
catch(err){
window.alert('게시글 작성에 실패하였습니다.')
console.log(err);
return;
}
}
}
スモールプロジェクトでは、ログイン、登録、ホームページ(CRUDのReadセクション)を担当しています.最初は順調に進み、火曜日頃には終わりそうです.しかし、事件は水曜日に起きた.突然、隊員はできないと言って、練習した/勉強した書類をゆったりしたズボンに投げた.この言葉は本当に青天の霹靂だ.その時から、バックグラウンドチームの助けで、CとDは忙しくてたまらない.今回のプロジェクトの駐車を通じて、コミュニケーションの重要性に気づきました.安易に信じすぎたようだ.来週から、選手たちとどこまで行くか詳しく話します.
Reference
この問題について([WIL]ミニプロジェクト(FormDataを使用して画像urlを他のコンテンツとともにサーバに送信with.AXIOS)), 我々は、より多くの情報をここで見つけました https://velog.io/@isabel_noh/WIL-미니프로젝트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol