data_json = json.dumps(result_r) #json字符串
f =open('E://XXX.txt',"a+") #打开文件,追加+读写
f.write(data_json) # data_json 写入XXX.txt'文件
f.seek(0) # 光标移动到文件开头
lines = f.read()() # 逐行读入
f.close() #关闭文件
mode 打开的方式(r,w,a,x,b,t,r+,w+,a+,U)
r 以只读方式打开文件。文件的指针会放在文件的开头。
w 以写入方式打开文件。文件存在覆盖文件,文件不存在创建一个新文件。
a 以追加方式打开文件。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。
r+ 打开一个文件用于读写,文件指针会放在文件的开头
w+ 打开一个文件用于读写,文件存在覆盖文件,文件不存在创建一个新文件。
a+ 打开一个文件用于读写,如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。
记忆方法:记住r读,w写,a追加,每个模式后加入+号就变成可读写。
f =open('E://xxx.txt',"a+") / f=open(r'E://xxx.txt',mode='a+',encoding='UTF-8')
踩坑1>
没有加encoding='UTF-8',可能会报如下错:
import requests # 使用 request函数需导入 request 库
import json #使用 JSON 函数需要导入 json 库: import json 。
param ={} #请求body
url ='http://域名/api'
header = {'content-type':'application/json'}
r = requests.post(url,json=param,headers=header) #发送post请求
result_r = r.json() #请求返回的json传入对象result_r
data_json = json.dumps(result_r) #将 Python-result_r对象转为字符串 json.dumps()
文件上传请求(csv文件)
file_path = "xxx.csv" 文件路径
uploaddata = {"file":open(file_path, "rb")}
file_upload_result = requests.post(api_URL, files=uploaddata, cookies=cookie)
包括action 和 http-request两种方式上传成功回调方法 绑定 handleSuccess 方法
自定义上传相比action上传,扩展性更强,当项目里上传需求较多,且连接不同接口地址时,配置uploadheaders 配置很多显然不太优雅。
注意:自定义上传时,需要对该上传设置一下请求头 。 在拦截器里设置请求头
自定义上传的触发方式 ,点击确定时在 importUser 里执行,执行这句即是执行uploadFile方法
注意: formdata打印不出来,实际有值
参考文章:
https://www.cnblogs.com/yunliu0603/p/9504756.html
https://www.cnblogs.com/tengyunhao/p/7670293.html
注意:
单文件 MultipartFile file;
多文件 MultipartFile[] file;
判断文件是否为空:!file.isEmpty() --->不为空
获取上传文件名:String originalFilename = file.getOriginalFilename() 包括文件名的后缀
文件保存路径:String filePath = request.getServletContext().getRealPath("/") + "upload/" + originalFilename
初始化文件信息:File newFile = new File(filePath)
创建目录:newFile.getParentFile().mkdir()
转存文件:file.transferTo(newFile)
步骤:
1.编写一个控制类;
2.编写提交表单的 action 方法,并使用 SpringMVC 注解 @RequestParam 来指定表单中的 file 参数;
3.指定一个用于保存文件的 web项目路径;
4.通过 MultipartFile 的 transferTo() 来转存文件到相应的路径;
5.编写 form 表单;
6.在 springMVC 配置文件中,定义文件上传解析器;
springMVC配置文件:
MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。如果请求数据中包含文件,则调用 MultipartResolver 的 resolveMultipart() 方法对请求的数据进行解析,然后将文件数据解析成 MultipartFile 并封装在 MultipartHttpServletRequest (继承了 HttpServletRequest) 对象中,最后传递给 Controller。
MultipartResolver 是一个接口,它的实现类如下图所示,分为 CommonsMultipartResolver 类和 StandardServletMultipartResolver 类。
其中 CommonsMultipartResolver 使用 commons Fileupload 来处理 multipart 请求,所以在使用时,必须要引入相应的 jar 包;
而 StandardServletMultipartResolver 是基于 Servlet 3.0来处理 multipart 请求的,所以不需要引用其他 jar 包,但是必须使用支持 Servlet 3.0的容器才可以,以tomcat为例,从 Tomcat 7.0.x的版本开始就支持 Servlet 3.0了。
关于 MultipartResolver 的具体讲解,参考: https://www.cnblogs.com/tengyunhao/p/7670293.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)