| | |
| | | "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", |
| | | "dev": true |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "ssri": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "minipass": "^3.1.1" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | |
| | | "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", |
| | | "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", |
| | | "dev": true |
| | | }, |
| | | "downloadjs": { |
| | | "version": "1.4.7", |
| | | "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz", |
| | | "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" |
| | | }, |
| | | "duplexer": { |
| | | "version": "0.1.2", |
| | |
| | | "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", |
| | | "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | |
| | | "axios": "^0.21.1", |
| | | "core-js": "^3.6.5", |
| | | "dayjs": "^1.11.13", |
| | | "downloadjs": "^1.4.7", |
| | | "echarts": "^5.4.3", |
| | | "el-tree-transfer": "^2.4.7", |
| | | "element-tiptap": "^1.27.1", |
| | |
| | | export function upload (data) { |
| | | return request.post('/visitsAdmin/cloudService/public/upload', data) |
| | | } |
| | | |
| | | // ä¸è½½ç½ç»éä»¶ |
| | | export function downloadFile(data) { |
| | | return request.post('/visitsAdmin/cloudService/public/downloadFile', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | |
| | | noResultsText="没æå¹é
çç»æ" /> |
| | | </el-form-item> |
| | | <el-form-item label="éä»¶å°å" prop="fileurl"> |
| | | <UploadFile :uploadData="{ folder: 'company_documents',fileType:'' }" :fileList="fileList" @uploadSuccess="uploadFileBiz" /> |
| | | <UploadFile :uploadData="{ folder: 'company_documents',fileType:'.zip,.war,.pdf' }" :fileList="fileList" @uploadSuccess="uploadFileBiz" /> |
| | | |
| | | <!-- <UploadFile width="100px" height="100px" :list="[]" folder="company_documents" @success="uploadFileBiz($event, 2)" />--> |
| | | </el-form-item> |
| | |
| | | <el-input type="textarea" v-model="form.content" placeholder="请è¾å
¥éä»¶æè¿°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç ï¼éåºï¼" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input type="number" v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | this.title = title |
| | | this.visible = true |
| | | this.getCate() |
| | | this.fileList = [] |
| | | this.getCompany() |
| | | // æ°å»ºç»ç» |
| | | if (target == null) { |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | if(this.form.fileurl){ |
| | | this.fileList = [{ fileurl: this.form.fileurl, fileurlFull:this.form.fileurlFull, name: this.form.fileName,fileSize:this.form.fileSize }] |
| | | } |
| | | }) |
| | | }, |
| | | uploadFileBiz (file) { |
| | |
| | | <div> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :accept="uploadData.fileTyp" |
| | | :accept="uploadData.fileType" |
| | | :action="uploadImgUrl" |
| | | :limit="this.fileLength" |
| | | :on-exceed="handleExceed" |
| | |
| | | :before-upload="beforeFileUpload" |
| | | :file-list="fileList"> |
| | | <el-button size="small" type="primary">ç¹å»ä¸ä¼ </el-button> |
| | | <div slot="tip" class="el-upload__tip" >åªè½ä¸ä¼ {{ this.fileLength }}个æä»¶ï¼æ°éè¶
è¿è¯·å é¤å·²ä¼ éä»¶éæ°ä¸ä¼ </div> |
| | | <div slot="tip" class="el-upload__tip" > |
| | | åªè½ä¸ä¼ {{ this.fileLength }}个æä»¶, |
| | | {{uploadData.fileType?('åªæ¯æä¸ä¼ ã'+uploadData.fileType+'ãç±»åæä»¶'):''}} |
| | | æä»¶å¤§å°ä¸è½è¶
è¿30MB, |
| | | æ°éè¶
è¿è¯·å é¤å·²ä¼ éä»¶éæ°ä¸ä¼ |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | |
| | |
| | | // |
| | | beforeFileUpload(file) { |
| | | if(this.fileList && this.fileList.length >= this.fileLength){ |
| | | this.$message.error('åªå
许ä¸ä¼ ã'+this.fileLength+'wæä»¶ã') |
| | | this.$message.error('åªå
许ä¸ä¼ ã'+this.fileLength+'个æä»¶ã') |
| | | return false; |
| | | } |
| | | const isLt2M = file.size / 1024 / 1024 <= 30; // æ£æ¥æä»¶å¤§å°æ¯å¦å°äº30MB |
| | | if (!isLt2M) { |
| | | this.$message.error('ä¸ä¼ æä»¶å¤§å°ä¸è½è¶
è¿ 30MB!'); |
| | | return false; // ä¸å
许ä¸ä¼ è¶
è¿æå®å¤§å°çæä»¶ |
| | | } |
| | | this.$emit('uploadBegin') |
| | | return true |
| | | } |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import RichEditor from '@/components/common/RichEditor' |
| | | import UploadFile from "@/components/common/UploadFile"; |
| | | import UploadFile from "@/components/common/UploadFile" |
| | | export default { |
| | | name: 'OperaDictDataWindow', |
| | | extends: BaseOpera, |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCompanyDocumentsWindow from '@/components/business/OperaCompanyDocumentsWindow' |
| | | import {downloadFile} from "@/api/system/common"; |
| | | |
| | | export default { |
| | | name: 'CompanyDocuments', |
| | | extends: BaseTable, |
| | |
| | | methods:{ |
| | | download(row){ |
| | | if(row.fileurlFull){ |
| | | window.open(row.fileurlFull) |
| | | downloadFile({ url: row.fileurlFull, fileName:row.fileName }) |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.doumee.cloud.common; |
| | | |
| | | import cn.hutool.core.io.IoUtil; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.api.BaseController; |
| | |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.FtpUtil; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.core.utils.aliyun.ALiYunUtil; |
| | | import com.doumee.dao.business.dto.DownloadFileDTO; |
| | | import com.doumee.dao.system.model.SystemDict; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import io.swagger.annotations.Api; |
| | |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.compress.archivers.zip.Zip64Mode; |
| | | import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; |
| | | import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import org.springframework.web.multipart.commons.CommonsMultipartResolver; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.PrintWriter; |
| | | import java.io.*; |
| | | import java.net.URLEncoder; |
| | | import java.nio.charset.Charset; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | return; |
| | | } |
| | | |
| | | @ApiOperation(value = "ä¸è½½ç½ç»æä»¶") |
| | | @RequestMapping(method= RequestMethod.POST,value="/downloadFile") |
| | | @ResponseBody |
| | | public void downloadFile(@RequestBody DownloadFileDTO param, HttpServletRequest request, HttpServletResponse response) throws Exception { |
| | | if(StringUtils.isBlank(param.getUrl())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | InputStream inputStream = HttpsUtil.connectionInputsteam(param.getUrl(),"GET","",null); |
| | | if(inputStream == null){ |
| | | if(StringUtils.isBlank(param.getUrl())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æä»¶ä¸è½½å¤±è´¥ï¼è¯·æ£æ¥æä»¶è·¯å¾æ¯å¦åæ³ï¼"); |
| | | } |
| | | } |
| | | if(StringUtils.isBlank(param.getFileName())){ |
| | | param.setFileName(System.currentTimeMillis()+""); |
| | | if(param.getUrl().lastIndexOf(".") >0){ |
| | | String nfix = param.getUrl().substring(param.getUrl().lastIndexOf(".")); |
| | | param.setFileName(System.currentTimeMillis()+"."+nfix); |
| | | } |
| | | } |
| | | String encodeFileName = URLEncoder.encode(param.getFileName(), Charset.forName("UTF-8").toString()); |
| | | response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName); |
| | | response.setContentType("application/octet-stream"); |
| | | response.setHeader("eva-opera-type", "download"); |
| | | response.setHeader("eva-download-filename", encodeFileName); |
| | | ServletOutputStream os = response.getOutputStream(); |
| | | byte[] buffer = new byte[4096]; |
| | | int bytesRead; |
| | | |
| | | while ((bytesRead = inputStream.read(buffer)) != -1) { |
| | | os.write(buffer, 0, bytesRead); |
| | | } |
| | | os.flush(); |
| | | os.close(); |
| | | inputStream.close(); |
| | | } |
| | | @ApiOperation(value = "ä¸ä¼ æä»¶å°FTP") |
| | | @RequestMapping(method= RequestMethod.POST,value="/upload") |
| | | @ResponseBody |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/5/20 14:54 |
| | | */ |
| | | @Data |
| | | public class DownloadFileDTO { |
| | | |
| | | @ApiModelProperty(value = "ç½ç»éä»¶å°å") |
| | | private String url ; |
| | | |
| | | @ApiModelProperty(value = "éä»¶åç§°") |
| | | private String fileName; |
| | | |
| | | |
| | | |
| | | } |