赞
踩
若依文件下载–都看我的,2021.4.17,
找了一圈,每一个写的简单的,还得自己完成
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:若依框架的文件下载。
提示:以下是本篇文章正文内容,下面案例可供参考
{
field: 'birthProve',
title: '出生证明',
formatter: function(value, row, index) {
return $.table.imageView(value)+'<a href="javascript:downloadFile(\''+row.birthProve+'\')">下载</a>'
;/!*实现照片预览*!/
},
就是你需要下载文件的页面,采用若依框架,会通过列表查询出数据,包括文件也是会拿出他的地址,此时我们只需要在前台写一个链接传入这个文件的地址,就可以进行查看,和下载,
前台页面显示如下
d
点击图片显示图片的放大版
{
field: 'birthProve',
title: '出生证明',
formatter: function(value, row, index) {
return $.table.imageView(value)+'<a href="javascript:downloadFile(\''+row.birthProve+'\')">下载</a>'
;/!*实现照片预览*!/
},
此时,已经完工,为啥会可以下载呢?
那是因为若依已经写了后台代码如下
package com.nczwgl.web.controller.common; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.nczwgl.common.config.RuoYiConfig; import com.nczwgl.common.config.ServerConfig; import com.nczwgl.common.constant.Constants; import com.nczwgl.common.core.domain.AjaxResult; import com.nczwgl.common.utils.StringUtils; import com.nczwgl.common.utils.file.FileUploadUtils; import com.nczwgl.common.utils.file.FileUtils; /** * 通用请求处理 * * @author ruoyi */ @Controller public class CommonController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); @Autowired private ServerConfig serverConfig; /** * 通用下载请求 * * @param fileName 文件名称 * @param delete 是否删除 */ @GetMapping("common/download") public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try { if (!FileUtils.checkAllowDownload(fileName)) { throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); } String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String filePath = RuoYiConfig.getDownloadPath() + fileName; response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, realFileName); FileUtils.writeBytes(filePath, response.getOutputStream()); if (delete) { FileUtils.deleteFile(filePath); } } catch (Exception e) { log.error("下载文件失败", e); } } /** * 通用上传请求 */ @PostMapping("/common/upload") @ResponseBody public AjaxResult uploadFile(MultipartFile file) throws Exception { try { // 上传文件路径 String filePath = RuoYiConfig.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); ajax.put("url", url); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 本地资源通用下载 */ @GetMapping("/common/download/resource") public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception { try { if (!FileUtils.checkAllowDownload(resource)) { throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); } // 本地资源路径 String localPath = RuoYiConfig.getProfile(); // 数据库资源地址 String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); // 下载名称 String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, downloadName); FileUtils.writeBytes(downloadPath, response.getOutputStream()); } catch (Exception e) { log.error("下载文件失败", e); } } }
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
若依框架很好用,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。