{"id":386,"date":"2023-02-25T08:41:55","date_gmt":"2023-02-25T00:41:55","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=386"},"modified":"2023-04-30T14:38:39","modified_gmt":"2023-04-30T06:38:39","slug":"retrofit2-learning-8-server-upload-file-design","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/25\/retrofit2-learning-8-server-upload-file-design\/","title":{"rendered":"Retrofit2\u5b66\u4e60\u4e4b\u516b\uff1a\u670d\u52a1\u7aef\u4e0a\u4f20\u6587\u4ef6\u8bbe\u8ba1"},"content":{"rendered":"<p>Retrofit2\u5b66\u4e60\u670d\u52a1\u7aef\u8bbe\u8ba1\u5728[OKHttp3\u5b66\u4e60\u670d\u52a1\u7aef\u8bbe\u8ba1](<a target=\"_blank\" rel=\"noopener\" href=\"http:\/\/www.appblog.cn\/2016\/11\/18\/Python\u642d\u5efaHTTP\u670d\u52a1\u5668\uff1aAPI\u63a5\u53e3\uff08\u652f\u6301RESTful\">http:\/\/www.appblog.cn\/2016\/11\/18\/Python\u642d\u5efaHTTP\u670d\u52a1\u5668\uff1aAPI\u63a5\u53e3\uff08\u652f\u6301RESTful<\/a> API\uff09\/)\u7684\u57fa\u7840\u4e0a\u589e\u52a0\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\u529f\u80fd\uff0c\u4ecd\u7136\u4f7f\u7528 Python Flask\u6846\u67b6\u5b9e\u73b0\u3002<\/p>\n<h2>\u591a\u4e2a\u57df\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6<\/h2>\n<p><!-- more --><\/p>\n<pre><code class=\"language-python\"># \u6587\u4ef6\u4e0a\u4f20API - \u591a\u4e2a\u57df\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\n@app.route(&quot;\/upload\/multiple&quot;, methods=[&#039;POST&#039;])\ndef upload_multiple():\n    description = request.form.get(&quot;description&quot;)\n    print &#039;description = &#039; + description\n\n    file1 = request.files[&#039;file1&#039;]\n    file2 = request.files[&#039;file2&#039;]\n\n    if file1 and allowed_file(file1.filename):\n        filename = secure_filename(file1.filename)\n        print &#039;file1 = &#039; + filename\n        file1.save(os.path.join(app.config[&#039;UPLOAD_FOLDER&#039;], filename))\n\n    if file2 and allowed_file(file2.filename):\n        filename = secure_filename(file2.filename)\n        print &#039;file2 = &#039; + filename\n        file2.save(os.path.join(app.config[&#039;UPLOAD_FOLDER&#039;], filename))\n\n    return jsonify(code=1, message=u&#039;\u6587\u4ef6\u4e0a\u4f20\u6210\u529f&#039;)<\/code><\/pre>\n<h2>\u540c\u4e00\u4e2a\u57df\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6<\/h2>\n<pre><code class=\"language-python\"># \u6587\u4ef6\u4e0a\u4f20API\uff0c\u540c\u4e00\u4e2a\u57df\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\n@app.route(&quot;\/upload\/multiples&quot;, methods=[&#039;POST&#039;])\ndef upload_multiples():\n    description = request.form.get(&quot;description&quot;)\n    print &#039;description = &#039; + description\n\n    #files\u4e3a\u5173\u952e\u5b57\uff0c\u4e0d\u53ef\u4f5c\u4e3a\u53d8\u91cf\n    uploaded_files = request.files.getlist(&quot;file&quot;)\n    for file in uploaded_files:\n        if file and allowed_file(file.filename):\n            filename = secure_filename(file.filename)\n            print &#039;file = &#039; + filename\n            file.save(os.path.join(app.config[&#039;UPLOAD_FOLDER&#039;], filename))\n\n    return jsonify(code=1, message=u&#039;\u6587\u4ef6\u4e0a\u4f20\u6210\u529f&#039;)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Retrofit2\u5b66\u4e60\u670d\u52a1\u7aef\u8bbe\u8ba1\u5728[OKHttp3\u5b66\u4e60\u670d\u52a1\u7aef\u8bbe\u8ba1](http:\/\/www.appblog.cn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130],"tags":[],"class_list":["post-386","post","type-post","status-publish","format-standard","hentry","category-retrofit"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=386"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/386\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}