Toggle navigation
Toggle navigation
This project
Loading...
Sign in
박민정
/
We-Shop
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박민정
2021-06-09 21:54:46 +0900
1
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
011d944f131ef66f4caa0f4e63b72aae90af81bd
011d944f
1 parent
f7a50482
[Update] Add product image upload block
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
200 additions
and
9 deletions
We-Shop/client/package-lock.json
We-Shop/client/package.json
We-Shop/client/src/components/utils/ImageUpload.js
We-Shop/client/src/components/views/UploadPage/UploadPage.js
We-Shop/package-lock.json
We-Shop/package.json
We-Shop/client/package-lock.json
View file @
011d944
...
...
@@ -2312,6 +2312,11 @@
"resolved"
:
"https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
,
"integrity"
:
"sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"attr-accept"
:
{
"version"
:
"2.2.2"
,
"resolved"
:
"https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz"
,
"integrity"
:
"sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
},
"autoprefixer"
:
{
"version"
:
"9.7.5"
,
"resolved"
:
"https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz"
,
...
...
@@ -5530,6 +5535,21 @@
"schema-utils"
:
"^2.5.0"
}
},
"file-selector"
:
{
"version"
:
"0.2.4"
,
"resolved"
:
"https://registry.npmjs.org/file-selector/-/file-selector-0.2.4.tgz"
,
"integrity"
:
"sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA=="
,
"requires"
:
{
"tslib"
:
"^2.0.3"
},
"dependencies"
:
{
"tslib"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz"
,
"integrity"
:
"sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w=="
}
}
},
"file-uri-to-path"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
,
...
...
@@ -11692,6 +11712,16 @@
"scheduler"
:
"^0.19.1"
}
},
"react-dropzone"
:
{
"version"
:
"11.3.2"
,
"resolved"
:
"https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.3.2.tgz"
,
"integrity"
:
"sha512-Z0l/YHcrNK1r85o6RT77Z5XgTARmlZZGfEKBl3tqTXL9fZNQDuIdRx/J0QjvR60X+yYu26dnHeaG2pWU+1HHvw=="
,
"requires"
:
{
"attr-accept"
:
"^2.2.1"
,
"file-selector"
:
"^0.2.2"
,
"prop-types"
:
"^15.7.2"
}
},
"react-error-overlay"
:
{
"version"
:
"6.0.7"
,
"resolved"
:
"https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz"
,
...
...
We-Shop/client/package.json
View file @
011d944
...
...
@@ -5,10 +5,13 @@
"dependencies"
:
{
"antd"
:
"^3.24.1"
,
"axios"
:
"^0.19.2"
,
"core-js"
:
"^3.6.4"
,
"formik"
:
"^1.5.8"
,
"moment"
:
"^2.24.0"
,
"react"
:
"^16.8.6"
,
"react-app-polyfill"
:
"^1.0.6"
,
"react-dom"
:
"^16.8.6"
,
"react-dropzone"
:
"^11.3.2"
,
"react-icons"
:
"^3.7.0"
,
"react-redux"
:
"^7.1.0-rc.1"
,
"react-router-dom"
:
"^5.0.1"
,
...
...
@@ -16,9 +19,7 @@
"redux"
:
"^4.0.0"
,
"redux-promise"
:
"^0.6.0"
,
"redux-thunk"
:
"^2.3.0"
,
"yup"
:
"^0.27.0"
,
"core-js"
:
"^3.6.4"
,
"react-app-polyfill"
:
"^1.0.6"
"yup"
:
"^0.27.0"
},
"scripts"
:
{
"start"
:
"react-scripts start"
,
...
...
We-Shop/client/src/components/utils/ImageUpload.js
0 → 100644
View file @
011d944
import
React
from
'react'
import
Dropzone
from
'react-dropzone'
import
axios
from
'axios'
;
function
ImageUpload
()
{
const
imageDropEvent
=
(
files
)
=>
{
let
imageData
=
new
imageData
();
const
config
=
{
header
:
{
'content-type'
:
'multipart/image-data'
}
}
// 이미지 전달
axios
.
post
(
'/api/product/image'
,
imageData
,
config
)
.
then
(
response
=>
{
if
(
response
.
data
.
success
)
{
}
else
{
alert
(
'파일 저장을 실패했습니다.'
)
}
})
}
return
(
<
div
style
=
{
{
display
:
'flex'
,
justifyContent
:
'space-between'
}}
>
<
Dropzone
onDrop
=
{
imageDropEvent
}
>
{({
getRootProps
,
getInputProps
})
=>
(
<
section
>
<
div
style
=
{{
width
:
300
,
height
:
200
,
border
:
'1px solid lightgray'
,
borderRadius
:
'1em'
,
display
:
'flex'
,
alignItems
:
'center'
,
textAlign
:
'center'
,
justifyContent
:
'center'
}}
{...
getRootProps
()}
>
<
input
{...
getInputProps
()}
/
>
<
p
>
이곳을
클릭하여
<
br
/>
상품
사진을
업로드
해주세요
.
<
/p
>
<
/div>
<
/section
>
)}
<
/Dropzone
>
<
/div
>
)
}
export
default
ImageUpload
We-Shop/client/src/components/views/UploadPage/UploadPage.js
View file @
011d944
import
React
from
'react'
;
import
{
useState
}
from
'react'
;
import
{
Typography
,
Button
,
Form
,
Input
}
from
'antd'
;
// css
import
ImageUpload
from
'../../utils/ImageUpload'
const
{
TextArea
}
=
Input
;
// 박스크기 조절을 사용자가 임의로 가능하게 함.
// Options
//
Select
Options
const
options
=
[{
key
:
1
,
value
:
"a"
},
{
key
:
2
,
value
:
"b"
},
{
key
:
3
,
value
:
"c"
}
...
...
@@ -44,9 +44,6 @@ function UploadPage() {
}
return
(
<
div
style
=
{{
maxWidth
:
'700px'
,
margin
:
'2rem auto'
}}
>
...
...
@@ -56,7 +53,8 @@ function UploadPage() {
<
/div
>
<
Form
>
{
/* 파일업로드 부분은 코드가 길어서 따로 컴포넌트로 만들었습니다. */
}
<
ImageUpload
/>
<
br
/>
<
br
/>
<
label
>
이름
<
/label
>
...
...
We-Shop/package-lock.json
View file @
011d944
...
...
@@ -103,6 +103,11 @@
}
}
},
"append-field"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz"
,
"integrity"
:
"sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
},
"aproba"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
,
...
...
@@ -397,6 +402,43 @@
"resolved"
:
"https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
,
"integrity"
:
"sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"buffer-from"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
,
"integrity"
:
"sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"busboy"
:
{
"version"
:
"0.2.14"
,
"resolved"
:
"https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz"
,
"integrity"
:
"sha1-bCpiLvz0fFe7vh4qnDetNseSVFM="
,
"requires"
:
{
"dicer"
:
"0.2.5"
,
"readable-stream"
:
"1.1.x"
},
"dependencies"
:
{
"isarray"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
,
"integrity"
:
"sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"readable-stream"
:
{
"version"
:
"1.1.14"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
,
"integrity"
:
"sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
,
"requires"
:
{
"core-util-is"
:
"~1.0.0"
,
"inherits"
:
"~2.0.1"
,
"isarray"
:
"0.0.1"
,
"string_decoder"
:
"~0.10.x"
}
},
"string_decoder"
:
{
"version"
:
"0.10.31"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
,
"integrity"
:
"sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
}
}
},
"bytes"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"
,
...
...
@@ -604,6 +646,17 @@
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream"
:
{
"version"
:
"1.6.2"
,
"resolved"
:
"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
,
"integrity"
:
"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="
,
"requires"
:
{
"buffer-from"
:
"^1.0.0"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^2.2.2"
,
"typedarray"
:
"^0.0.6"
}
},
"concurrently"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/concurrently/-/concurrently-4.1.2.tgz"
,
...
...
@@ -834,6 +887,38 @@
"resolved"
:
"https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"
,
"integrity"
:
"sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"dicer"
:
{
"version"
:
"0.2.5"
,
"resolved"
:
"https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz"
,
"integrity"
:
"sha1-WZbAhrszIYyBLAkL3cCc0S+stw8="
,
"requires"
:
{
"readable-stream"
:
"1.1.x"
,
"streamsearch"
:
"0.1.2"
},
"dependencies"
:
{
"isarray"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
,
"integrity"
:
"sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"readable-stream"
:
{
"version"
:
"1.1.14"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
,
"integrity"
:
"sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
,
"requires"
:
{
"core-util-is"
:
"~1.0.0"
,
"inherits"
:
"~2.0.1"
,
"isarray"
:
"0.0.1"
,
"string_decoder"
:
"~0.10.x"
}
},
"string_decoder"
:
{
"version"
:
"0.10.31"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
,
"integrity"
:
"sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
}
}
},
"dot-prop"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz"
,
...
...
@@ -2644,6 +2729,21 @@
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"multer"
:
{
"version"
:
"1.4.2"
,
"resolved"
:
"https://registry.npmjs.org/multer/-/multer-1.4.2.tgz"
,
"integrity"
:
"sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg=="
,
"requires"
:
{
"append-field"
:
"^1.0.0"
,
"busboy"
:
"^0.2.11"
,
"concat-stream"
:
"^1.5.2"
,
"mkdirp"
:
"^0.5.1"
,
"object-assign"
:
"^4.1.1"
,
"on-finished"
:
"^2.3.0"
,
"type-is"
:
"^1.6.4"
,
"xtend"
:
"^4.0.0"
}
},
"nan"
:
{
"version"
:
"2.14.0"
,
"resolved"
:
"https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"
,
...
...
@@ -3717,6 +3817,11 @@
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"streamsearch"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"
,
"integrity"
:
"sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
},
"string-width"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
,
...
...
@@ -3913,6 +4018,11 @@
"mime-types"
:
"~2.1.24"
}
},
"typedarray"
:
{
"version"
:
"0.0.6"
,
"resolved"
:
"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
,
"integrity"
:
"sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"undefsafe"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz"
,
...
...
@@ -4178,6 +4288,11 @@
"integrity"
:
"sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
,
"dev"
:
true
},
"xtend"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
,
"integrity"
:
"sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"
,
...
...
We-Shop/package.json
View file @
011d944
...
...
@@ -25,6 +25,7 @@
"jsonwebtoken"
:
"^8.5.1"
,
"moment"
:
"^2.24.0"
,
"mongoose"
:
"^5.4.20"
,
"multer"
:
"^1.4.2"
,
"react-redux"
:
"^5.0.7"
,
"saslprep"
:
"^1.0.3"
,
"supports-color"
:
"^7.1.0"
...
...
박민정
@2018110650
2021-06-09 13:06:04 UTC
Mentioned in commit
20e62fef
Please
register
or
login
to post a comment