鴻蒙的JS開發(fā)部模式18:鴻蒙的文件上傳到Python服務器端
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
1.首先鴻蒙的js文件上傳,設(shè)置目錄路徑為:
構(gòu)建路徑在工程主目錄下:
該目錄的說明見下面描述:
視圖構(gòu)建如下:
界面代碼:
- <div class="container">
- <div onclick="operatorloadone" class="divone"><text>上傳文件</text></div>
- </div>
js上傳業(yè)務邏輯代碼:
導入request模塊 import request from '@system.request'; 執(zhí)行upload方法:
- import request from '@system.request';
- import prompt from '@system.prompt';
- export default {
- data: {
- title: 'World'
- },
- operatorloadone()
- {
- prompt.showToast({
- message:"執(zhí)行文件上傳"
- })
- 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');
- }
- });
- }
- }
上傳參數(shù)說明如下:
域名采用內(nèi)網(wǎng)穿透工具:
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("獲取文件的參數(shù)是:"+filename)
- if file_obj is None:
- # 表示沒有發(fā)送文件
- 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") 獲取文件上傳參數(shù),post請求 request.form,如果是get請求,request.args. 區(qū)分get和post請求。
上傳文件可能會較慢,耐心等待幾秒,檢查服務器端python工作臺目錄,查看日志信息:
還是古語說得好,十八般武藝,樣樣需精通!我們一起努力吧!
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)