鸿蒙的JS开发部模式18:鸿蒙的文件上传到Python服务器端

开发
文章由鸿蒙社区产出,想要了解更多内容请前往:51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

[[386058]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

1.首先鸿蒙的js文件上传,设置目录路径为:

构建路径在工程主目录下:

该目录的说明见下面描述:

视图构建如下:

界面代码:

  1. <div class="container"
  2.    <div onclick="operatorloadone" class="divone"><text>上传文件</text></div> 
  3. </div> 

js上传业务逻辑代码:

导入request模块 import request from '@system.request'; 执行upload方法:

  1. import request from '@system.request'
  2. import prompt from '@system.prompt'
  3. export default { 
  4.     data: { 
  5.         title: 'World' 
  6.     }, 
  7.     operatorloadone() 
  8.     { 
  9.         prompt.showToast({ 
  10.             message:"执行文件上传" 
  11.  
  12.         }) 
  13.         request.upload({ 
  14.             url: 'http://rwrg2k.natappfree.cc/upload'
  15.             method:"POST"
  16.             files: [ 
  17.                 { 
  18.                     uri: 'internal://cache/path/to/file.txt'
  19.                     name'file'
  20.                     filename: 'file.txt'
  21.                 }, 
  22.             ], 
  23.             data:[ 
  24.                 { 
  25.                     name'file1'
  26.                     value: '文本文件'
  27.                 }, 
  28.             ], 
  29.             success: function(data) { 
  30.                 console.log(data); 
  31.             }, 
  32.             fail: function() { 
  33.                 console.log('upload fail'); 
  34.             } 
  35.         }); 
  36.  
  37.     } 

上传参数说明如下:

域名采用内网穿透工具:

python服务器端的代码如下:

  1. from  flask  import Flask 
  2. from flask  import jsonify 
  3. from  flask  import   request 
  4.  
  5. app=Flask(__name__) 
  6. '''因为是文件,所以只能是POST方式''' 
  7. @app.route("/upload", methods=["POST"]) 
  8. def  uploadFile(): 
  9.     print("获取上传文件信息"
  10.     """接受前端传送来的文件""" 
  11.     file_obj = request.files.get("file"
  12.     filename=request.form.get("file1"
  13.     print("获取文件的参数是:"+filename) 
  14.  
  15.     if file_obj is None: 
  16.         # 表示没有发送文件 
  17.         return jsonify("未上传文件"
  18.  
  19.     ''
  20.         将文件保存到本地(即当前目录) 
  21.         直接使用上传的文件对象保存 
  22.     ''
  23.     file_obj.save('file.txt')  # 和前端上传的文件类型要相同 
  24.     file_obj.seek(0) 
  25.     return jsonify("上传成功"
  26.  
  27.  
  28. if  __name__=="__main__"
  29.     app.run(debug=True,port=8500) 

文件上传到python工程根目录下:

file_obj = request.files.get("file") 获取文件信息

filename=request.form.get("file1") 获取文件上传参数,post请求 request.form,如果是get请求,request.args. 区分get和post请求。

上传文件可能会较慢,耐心等待几秒,检查服务器端python工作台目录,查看日志信息:

还是古语说得好,十八般武艺,样样需精通!我们一起努力吧!

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2021-03-02 14:34:48

鸿蒙HarmonyOS应用开发

2021-02-22 09:49:25

鸿蒙HarmonyOS应用开发

2021-02-26 14:13:48

鸿蒙HarmonyOS应用开发

2021-09-02 10:49:25

Node.jsPHP服务器开发

2013-12-25 11:01:16

JavaScript

2011-09-08 10:21:50

Node.js

2019-01-22 15:28:04

Javascriptvue.jsnuxt.js

2010-08-27 10:23:26

DHCP服务器

2010-03-23 10:04:00

JavaScript

2017-03-02 11:58:31

NodeJS服务器

2011-07-26 11:07:08

JavaScript

2018-06-28 09:38:16

2014-01-15 10:06:30

vFlash

2022-11-10 15:17:43

Windows文件Linux

2012-10-15 13:40:15

IBMdw

2022-05-07 15:54:56

小熊派鸿蒙

2009-07-06 17:22:54

JSP服务器

2019-07-03 14:26:10

Linux服务器方法

2011-06-07 16:01:46

Android 服务器 数据交互

2017-12-06 22:29:53

点赞
收藏

51CTO技术栈公众号