JS实现文件上传与下载,PDF与Excel的操作
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容介绍了"JS实现文件上传与下载,PDF与Excel的操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年01月23日JS实现文件上传与下载,PDF与Excel的操作
本篇内容介绍了"JS实现文件上传与下载,PDF与Excel的操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.文件上传
前端代码
选取文件 上传到服务器 只能上传jpg/png文件,且不超过500kb
JS代码
在使用
el-upload
组件时,会有页面上渲染两个上传
按钮,可以使用CSS把原生的上传按钮隐藏起来
input[type="file"] { display: none;}
后端代码
import osimport timefrom django.views.decorators.csrf import csrf_exemptdef check_upload_wrapper(func): def inner(*args, **kwargs): if not os.path.exists("upload/"): os.makedirs("upload/") return func(*args, **kwargs) return inner@csrf_exempt # 取消csrf认证,可以不使用这个装饰器@check_upload_wrapper # 装饰器,检查后台是否有`upload/`目录,如果没有则创建def upload_temp(request): file_obj = request.FILES.get('file') # 获取上传的文件对象 t = time.strftime('%Y%m%d%H%M%S') now_file_name = t + '.' + file_obj.name.split('.')[1] # 得到文件在后台的保存名字 file_path = os.path.join('upload', now_file_name) with open(file_path, "wb") as f: for line in file_obj.chunks(): f.write(line) return JsonResponse({'result': True, 'data': file_path}) # 必须要返回文件保存路径
2.文件下载
前端代码
下载
后端代码
from django.utils.encoding import escape_uri_pathfrom django.http import HttpResponsedef download(request): file_name = u"合并.pdf" file = open(file_name, 'rb') response = HttpResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = "attachment;filename*=utf-8''{}".format(escape_uri_path(file_name)) return response
3.PDF文件合并
pdffile1 = open(r'file1.pdf', 'rb')pdffile2 = open(r'file2.pdf', 'rb')pdf1_reader = PyPDF2.PdfFileReader(pdffile1)pdf2_reader = PyPDF2.PdfFileReader(pdffile2)# 创建一个pdf文档,这个只是代表pdf文档的值,并没有创建实际的文档。pdf_writer = PyPDF2.PdfFileWriter()# 将文档一页一页的读入到新的文档for pagenum in range(pdf1_reader.numPages): pageobj = pdf1_reader.getPage(pagenum) pdf_writer.addPage(pageobj)for pagenum in range(pdf2_reader.numPages): pageobj = pdf2_reader.getPage(pagenum) pdf_writer.addPage(pageobj)# write方法才能真正生成一个文件pdfoutputfile = open(u'合并.pdf', 'wb')pdf_writer.write(pdfoutputfile)pdfoutputfile.close()pdffile1.close()pdffile2.close()
4.读取Excel文件
# 读取Excel文件def read_excel(): # 路径前加 r,读取的文件路径 file_path = r'file1.xlsx' # 文件路径的中文转码 file_path = file_path.decode('utf-8') # 获取数据 data = xlrd.open_workbook(file_path) # 获取sheet,通常为 Sheet1 table = data.sheet_by_name(u'Sheet1) # 获取excel文件的总行数 nrows = table.nrows # 从第二行开始读取数据 for i in range(1, nrows): # 读取每一行第一列的数据 value1 = table.cell(i, 0).value.strip() # 读取每一行第二列的数据 value2 = table.cell(i, 1).value.strip()
5.写入Excel文件
5.1 xlwt 模块写入Excel文件
def write_excel(sheet_name, titles, col1, col2): f = xlwt.Workbook() # 添加一个Sheet,名字为 sheet_name 所传的参数 sheet1 = f.add_sheet(sheet_name, cell_overwrite_ok=True) # 写文件头 for i in range(0, len(titles)): # i 表示第一行的第 i 列 sheet1.write(0, i, titles[i]) # 从第二行开始写入数据 for i in range(0, len(col1)): # 向每一行的第1列写入数据 sheet1.write(i + 1, 0, col1[i]) # 向每一行的第2列写入数据 sheet1.write(i + 1, 1, col2[i]) # 第一个参数表示行,从0开始计算 # 第二个参数表示列,从0开始计算 # 第二个参数表示写入的数据 # sheet1.write(1, 3, '2006/12/12') # 第一个参数:合并开始的行 # 第二个参数:合并结束的行(可以一次合并多行) # 第三个参数:合并开始的列 # 第四个参数:合并结束的列(可以一次合并多行多列) # 第五个参数:写入的数据 sheet1.write_merge(1, 3, 3, 3, u'打游戏') # 合并列单元格 sheet1.write_merge(4, 10, 3, 4, u'打篮球') f.save('%s.xls' % sheet_name)
5.2 xlsxwriter 模块写入Excel文件
def write_excel1(): # 新建文件,文件名为: hello.xlsx workbook = xlsxwriter.Workbook('hello.xlsx') # 建立sheet,可以传入参数来指定sheet名 worksheet = workbook.add_worksheet(u"任平生") titles = [u"姓名", u"年龄", u"出生日期", u"爱好"] col1 = [u"张三", u"李四", u"恋习Python", u"小明", u"小红", u"无名"] col2 = [12, 13, 14, 15, 16, 17] # 写入文件头部 for i in range(len(titles)): worksheet.write(0, i, titles[i]) # 写入文件内容 for j in range(len(col1)): # 从第二行开始向每行的第一列写入数据 worksheet.write(j + 1, 0, col1[j]) # 从第二行开始向每行的第二列写入数据 worksheet.write(j + 1, 1, col2[j]) workbook.close()
"JS实现文件上传与下载,PDF与Excel的操作"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
数据
参数
一行
代码
文档
路径
内容
前端
名字
后台
实际
按钮
更多
模块
知识
多行
学有所成
接下来
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技与互联网的问题
架设游戏哪种服务器
网吧服务器声音大不大
门头沟区综合软件开发平台
内部导航软件开发
磁盘阵列 数据库
软件开发工程师薪资介绍
五月喵软件开发公司
吐鲁番有dns服务器吗
工信部网络安全保险
软件开发企业财务管理工具
浪潮英信服务器出厂开机密码多少
服务器存储管理模拟程序
香港阿里云服务器价格
网络安全部的职责
软件开发怎么转行项目经理
租国外服务器 5美元
猎聘网招聘官网数据库管理员
网络技术力量简介
2021网络安全知识题库
查看服务器安全组设置
电脑文件不能复制到公共盘服务器
青海百信服务器
内部导航软件开发
软件开发公司主营业务成本
营改增后软件开发交什么税
竞标赛服务器
不属于保护网络安全的
徐州企业软件开发创新服务
access六种数据库对象