1.首先鴻蒙的js文件上傳,設置目錄路徑為:

構建路徑在工程主目錄下:

該目錄的說明見下面描述:
視圖構建如下:

界面代碼:
<div class="container">
<div onclick="operatorloadone" class="divone"><text>上傳文件</text></div>
</div>
js上傳業務邏輯代碼:
導入request模塊 import request from '@system.request'; 執行upload方法:
import request from '@system.request';
import prompt from '@system.prompt';
export default {
data: {
title: 'World'
},
operatorloadone()
{
prompt.showToast({
message:"執行文件上傳"
})
request.upload({
url: 'http://rwrg2k.natappfree.cc/upload',
method:"POST",
files: [
{
uri: 'internal://cache/path/to/file.txt',
name: 'file',
filename: 'file.txt',
},
],
data:[
{
name: 'file1',
value: '文本文件',
},
],
success: function(data) {
console.log(data);
},
fail: function() {
console.log('upload fail');
}
});
}
}
上傳參數說明如下:


域名采用內網穿透工具:

python服務器端的代碼如下:
from flask import Flask
from flask import jsonify
from flask import request
app=Flask(__name__)
'''因為是文件,所以只能是POST方式'''
@app.route("/upload", methods=["POST"])
def uploadFile():
print("獲取上傳文件信息")
"""接受前端傳送來的文件"""
file_obj = request.files.get("file")
filename=request.form.get("file1")
print("獲取文件的參數是:"+filename)
if file_obj is None:
# 表示沒有發送文件
return jsonify("未上傳文件")
'''
將文件保存到本地(即當前目錄)
直接使用上傳的文件對象保存
'''
file_obj.save('file.txt') # 和前端上傳的文件類型要相同
file_obj.seek(0)
return jsonify("上傳成功")
if __name__=="__main__":
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工作台目錄,查看日志信息:

還是古語說得好,十八般武藝,樣樣需精通!我們一起努力吧!
《鴻蒙的js開發模式》系列文章合集
作者:六合李欣
想了解更多內容,請訪問51CTO和華為合作共建的鴻蒙社區:https://harmonyos.51cto.com
