yjryu / KERIS star
류윤주 류윤주 2023-11-17
231117 이세현 리눅스용 경로수정
@aa3cc999ce15b59b55c64b1eaa8ae8bdcb4ee61a
client/views/pages/admin/news/NewsInsert.vue
--- client/views/pages/admin/news/NewsInsert.vue
+++ client/views/pages/admin/news/NewsInsert.vue
@@ -285,7 +285,6 @@
         //파일업로드 중 업로드 파일 삭제
         fileRemove(idx) {
             this.fileList.splice(idx, 1);
-            console.log("reMove_file", this.fileList);
             this.filecount = this.fileList.length;
         },
 
client/views/pages/admin/news/NewsSelectList.vue
--- client/views/pages/admin/news/NewsSelectList.vue
+++ client/views/pages/admin/news/NewsSelectList.vue
@@ -33,7 +33,7 @@
                     <li v-for="(item, idx) in postList" :key="idx" @click.stop="postSelectOnePage(item)">
                         <a>
                             <div class="thumbnail">
-                                <img :src="'http://localhost:8080' + item.file_path + '\\thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
+                                <img :src="'http://localhost:8088' + item.file_path + '/thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
                                     alt="thumbnail" />
                             </div>
                             <div class="text-zone">
client/views/pages/admin/news/NewsSelectOne.vue
--- client/views/pages/admin/news/NewsSelectOne.vue
+++ client/views/pages/admin/news/NewsSelectOne.vue
@@ -185,7 +185,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/admin/news/NewsUpdate.vue
--- client/views/pages/admin/news/NewsUpdate.vue
+++ client/views/pages/admin/news/NewsUpdate.vue
@@ -137,8 +137,8 @@
                     for(let i=0; i< vm.fileList.length; i++) {
                         if(vm.fileList[i].file_ty === 'thumbnail') {
                             vm.oldThumbnailFileList.push (vm.fileList[i])
-                            vm.thumbnailPreview = 'http://localhost:8080' + vm.fileList[i].file_path.replace('C:', '') +
-                            '\\thumbnail_' + vm.fileList[i].file_nm + '.' + vm.fileList[i].file_extn_nm;
+                            vm.thumbnailPreview = 'http://localhost:8088' + vm.fileList[i].file_path.replace('C:', '') +
+                            '/thumbnail_' + vm.fileList[i].file_nm + '.' + vm.fileList[i].file_extn_nm;
                         } else {
                             vm.attachFileList.push(vm.fileList[i]);
                         }
@@ -315,7 +315,16 @@
                 }
                 let reader = new FileReader();
                 reader.onload = (e) => {
+                    const originalThumbnail = this.thumbnailPreview;
                     this.thumbnailPreview = e.target.result;
+
+                    // 파일 확장자 검사
+                    const fileExtension = file.name.split('.').pop().toLowerCase();
+                    if (fileExtension === 'jpg') {
+                        alert("JPG, PNG, BMP, GIF, WBMP 확장자파일만 사용하실 수 있습니다.");
+                        this.thumbnailPreview = originalThumbnail;
+                        return;
+                    }
 
                     // 이미지크기 확인
                     const img = new Image();
@@ -323,7 +332,7 @@
                     img.onload = () => {
                         if (img.width < MIN_WIDTH || img.height < MIN_HEIGHT) {
                             alert("썸네일 이미지 크기는 최소 " + MIN_WIDTH + "픽셀" + "x" + MIN_HEIGHT + "픽셀" + "입니다.");
-                            this.thumbnailPreview = null;
+                            this.thumbnailPreview = originalThumbnail;
                         } else {
                             this.deleteFileList.push(...this.oldThumbnailFileList.filter(file => file.file_ty === 'thumbnail'));
                             this.deleteCount += 1;
client/views/pages/admin/notice/NoticeSelectOne.vue
--- client/views/pages/admin/notice/NoticeSelectOne.vue
+++ client/views/pages/admin/notice/NoticeSelectOne.vue
@@ -165,7 +165,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/admin/popup/PopupSelectOne.vue
--- client/views/pages/admin/popup/PopupSelectOne.vue
+++ client/views/pages/admin/popup/PopupSelectOne.vue
@@ -165,7 +165,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/admin/technology/TechUpdate.vue
--- client/views/pages/admin/technology/TechUpdate.vue
+++ client/views/pages/admin/technology/TechUpdate.vue
@@ -151,8 +151,8 @@
                     for(let i=0; i< vm.fileList.length; i++) {
                         if(vm.fileList[i].file_ty === 'thumbnail') {
                             vm.oldThumbnailFileList.push (vm.fileList[i])
-                            vm.thumbnailPreview = 'http://localhost:8080' + vm.fileList[i].file_path.replace('C:', '') +
-                            '\\thumbnail_' + vm.fileList[i].file_nm + '.' + vm.fileList[i].file_extn_nm;
+                            vm.thumbnailPreview = 'http://localhost:8088' + vm.fileList[i].file_path.replace('C:', '') +
+                            '/thumbnail_' + vm.fileList[i].file_nm + '.' + vm.fileList[i].file_extn_nm;
                         } else {
                             vm.attachFileList.push(vm.fileList[i]);
                         }
@@ -323,7 +323,16 @@
                 }
                 let reader = new FileReader();
                 reader.onload = (e) => {
+                    const originalThumbnail = this.thumbnailPreview;
                     this.thumbnailPreview = e.target.result;
+
+                    // 파일 확장자 검사
+                    const fileExtension = file.name.split('.').pop().toLowerCase();
+                    if (fileExtension === 'jpg') {
+                        alert("JPG, PNG, BMP, GIF, WBMP 확장자파일만 사용하실 수 있습니다.");
+                        this.thumbnailPreview = originalThumbnail;
+                        return;
+                    }
 
                     // 이미지크기 확인
                     const img = new Image();
@@ -331,7 +340,7 @@
                     img.onload = () => {
                         if (img.width < MIN_WIDTH || img.height < MIN_HEIGHT) {
                             alert("썸네일 이미지 크기는 최소 " + MIN_WIDTH + "픽셀" + "x" + MIN_HEIGHT + "픽셀" + "입니다.");
-                            this.thumbnailPreview = null;
+                            this.thumbnailPreview = originalThumbnail;
                         } else {
                             this.deleteFileList.push(...this.oldThumbnailFileList.filter(file => file.file_ty === 'thumbnail'));
                             this.deleteCount += 1;
@@ -342,6 +351,7 @@
                     };
                 };
                 reader.readAsDataURL(file);
+
             } else {
                 vm.insertFileList.push(fileItem)
             }
client/views/pages/admin/wgcommunity/WgSelectOne.vue
--- client/views/pages/admin/wgcommunity/WgSelectOne.vue
+++ client/views/pages/admin/wgcommunity/WgSelectOne.vue
@@ -176,7 +176,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/user/community/News.vue
--- client/views/pages/user/community/News.vue
+++ client/views/pages/user/community/News.vue
@@ -9,7 +9,7 @@
                 <ul class="news-bos">
                     <li class="news-bos-box" v-for="(item, idx) in postList" :key="idx" @click="openModal(item)">
                         <div class="modal-img">
-                            <img :src="'http://localhost:8088' + item.file_path + '\\thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
+                            <img :src="'http://localhost:8088' + item.file_path + '/thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
                                 alt="thumbnail" />
                         </div>
                         <div>
@@ -157,7 +157,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/user/community/NoticeOne.vue
--- client/views/pages/user/community/NoticeOne.vue
+++ client/views/pages/user/community/NoticeOne.vue
@@ -162,7 +162,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/user/main/Main.vue
--- client/views/pages/user/main/Main.vue
+++ client/views/pages/user/main/Main.vue
@@ -150,7 +150,7 @@
                                     }" :modules="modules" class="mySwiper">
                                     <swiper-slide v-for="(item, idx) in postList" :key="idx">
                                         <div class="modal-img" @click="openModal(item)">
-                                            <img :src="'http://localhost:8080' + item.file_path + '\\thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
+                                            <img :src="'http://localhost:8080' + item.file_path + '/thumbnail_' + item.file_nm + '.' + item.file_extn_nm"
                                                 alt="thumbnail" />
                                             <p>{{ item.post_title }}</p>
                                         </div>
client/views/pages/user/mypage/Info.vue
--- client/views/pages/user/mypage/Info.vue
+++ client/views/pages/user/mypage/Info.vue
@@ -49,7 +49,7 @@
                         <section>
                             <p>
                                 <!-- <img src="../../../../resources/jpg/zigaksa.jpg" alt=""> -->
-                                <img :src="'http://localhost:8080' + logoFile.file_path + '\\' + logoFile.file_nm + '.' + logoFile.file_extn_nm"
+                                <img :src="'http://localhost:8080' + logoFile.file_path + '/' + logoFile.file_nm + '.' + logoFile.file_extn_nm"
                                     width="100%" alt="">
                             </p>
                         </section>
@@ -125,7 +125,7 @@
                                 {{ cardFile.real_file_nm }}
                             </a>
                             <div class="matchingbox-img">
-                                <img :src="'http://localhost:8080' + cardFile.file_path + '\\' + cardFile.file_nm + '.' + cardFile.file_extn_nm"
+                                <img :src="'http://localhost:8080' + cardFile.file_path + '/' + cardFile.file_nm + '.' + cardFile.file_extn_nm"
                                     width="100%" alt="">
                             </div>
 
@@ -306,7 +306,7 @@
 
         downloadFile: function (item) {
             const vm = this;
-            let path = item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            let path = item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
client/views/pages/user/mypage/MatchingManager.vue
--- client/views/pages/user/mypage/MatchingManager.vue
+++ client/views/pages/user/mypage/MatchingManager.vue
@@ -46,7 +46,7 @@
                                 <div class="inbox-img inbox-img-blur" v-for="(item, idx) in pickReceptionList" :key="idx">
                                     <h4>{{ item.company_nm }}</h4>
 
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div v-if="!item.complete_yn">
                                         <button @click="pickModal(item)" class="blue-btn">수락</button>
@@ -65,7 +65,7 @@
                             <div class="inbox-sub">
                                 <div class="inbox-img" v-for="(item, idx) in pickDispatchList" :key="idx">
                                     <h4>{{ item.company_nm }}</h4>
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div v-if="item.refuse_yn === 'N'" class="inbox-button">
                                         <button class="dark-gray-btn">응답대기중</button>
@@ -85,7 +85,7 @@
                             <div class="inbox-sub">
                                 <div class="inbox-img" v-for="(item, idx) in pickCompleteList" :key="idx">
                                     <h4>{{ item.company_nm }}</h4>
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div class="inbox-button">
                                         <button v-if="item.matching_yn" class="gray-btn">신청 완료</button>
@@ -108,7 +108,7 @@
                             <div class="inbox-sub">
                                 <div class="inbox-img" v-for="(item, idx) in matchingReceptionList" :key="idx">
                                     <h4>{{ item.company_nm }}</h4>
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div v-if="!item.complete_yn">
                                         <button @click="matchingAcceptModal(item)" class="blue-btn">수락</button>
@@ -127,7 +127,7 @@
                             <div class="inbox-sub">
                                 <div class="inbox-img" v-for="(item, idx) in matchingDispatchList" :key="idx">
                                     <h4>{{ item.company_nm }}</h4>
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div v-if="item.refuse_yn === 'N'">
                                         <button class="dark-gray-btn" >응답대기중</button>
@@ -144,7 +144,7 @@
                             <div class="inbox-sub" v-for="(item, idx) in matchingCompleteList" :key="idx">
                                 <div class="inbox-img inbox-img-logo">
                                     <h4>{{ item.company_nm }}</h4>
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         alt="명함박스">
                                     <div v-if="item.use_yn === 'Y'">
                                         <button @click="matchingResetModal(item)"  class="red-btn" >매칭 취소</button>
@@ -421,7 +421,7 @@
 
         cardView: function (item) {
             this.company_nm = item.company_nm;
-            this.cardFullPath = 'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm;
+            this.cardFullPath = 'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm;
             this.isVisible = true
         },
 
client/views/pages/user/networking/Matching.vue
--- client/views/pages/user/networking/Matching.vue
+++ client/views/pages/user/networking/Matching.vue
@@ -38,7 +38,7 @@
                                 @click="companySelectOnePage(item)">
                                 <h3>{{ item.company_nm }}</h3>
                                 <div class="matchingbox-img">
-                                    <img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"
+                                    <img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"
                                         width="100%" alt="">
                                 </div>
                                 <p class="content-detail">{{ company_simple_info }}</p>
client/views/pages/user/networking/MatchingOne.vue
--- client/views/pages/user/networking/MatchingOne.vue
+++ client/views/pages/user/networking/MatchingOne.vue
@@ -72,7 +72,7 @@
             <button class="join-text-bt3" @click="closePickListMadal">X</button>
         </div>
         <table class="mat-modal-img" v-for="(item, idx) in pickSelectList" :key="idx">
-            <td><img :src="'http://localhost:8080' + item.file_path + '\\' + item.file_nm + '.' + item.file_extn_nm"></td>
+            <td><img :src="'http://localhost:8080' + item.file_path + '/' + item.file_nm + '.' + item.file_extn_nm"></td>
             <td>
                 {{ item.company_nm }}
             </td>
@@ -172,7 +172,7 @@
 
         downloadProfile: function () {
             const vm = this;
-            let path = vm.company.file_path + '\\' + vm.company.file_nm + '.' + vm.company.file_extn_nm;
+            let path = vm.company.file_path + '/' + vm.company.file_nm + '.' + vm.company.file_extn_nm;
             axios({
                 url: '/file/downloadFile.json',
                 method: 'post',
Add a comment
List