1. 程式人生 > >flask中如何實現檔案上傳

flask中如何實現檔案上傳

首先請看templates中的html模板

特別要注意,模板中必須要使用 enctype="multipart/form-data" , 否則form不會做任何事情

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <p>
        <input type="file" name="file">
        <input type =submit value="upload">
    </p>
</form>
</body>
</html>

使用request.files 模組實現檔案上傳

並使用os中的path

from flask import Flask, request,make_response,render_template, redirect, url_for
from werkzeug.utils import secure_filename # 使用這個是為了確保filename是安全的
from os import path

實現程式碼

@app.route("/upload",methods=['GET','POST'])
def upload():
    if request.method=='POST':
        f = request.files["file"]
        base_path = path.abspath(path.dirname(__file__))
        upload_path = path.join(base_path,'static/uploads/')
        file_name = upload_path + secure_filename(f.filename)
        f.save(file_name)
        return redirect(url_for('upload'))
    return render_template('upload.html')

初次執行程式碼前,需要手動在static目錄下建立uploads目錄

效果展示如下:


image.png

檔案上傳結果如下:



作者:孫巨集志
連結:http://www.jianshu.com/p/31f0f3a3b22d
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關推薦

Java實現檔案下載的三種解決方案

第一點:Java程式碼實現檔案上傳   FormFile file=manform.getFile();    String newfileName = null;   String newpathname=null;   String fileAddre="/numU

如何在基於Java的Web專案實現檔案和下載?

在Sevlet 3 以前,Servlet API中沒有支援上傳功能的API,因此要實現上傳功能需要引入第三方工具從POST請求中獲得上傳的附件或者通過自行處理輸入流來獲得上傳的檔案,我們推薦使用Apac

在SpringMVC框架實現檔案和下載

首先在springmvc.xml中配置檔案上傳的屬性 <!-- 檔案上傳的屬性值 --> <bean id="multipartResolver" class="org.springframework.web.multi

Django實現檔案功能

在web開發中,檔案上傳與下載是常見的功能,在Django中實現檔案的上傳與下載也非常簡單,實現步驟與其他功能實現類似,1. 新建一個模板,2. 編寫模板對應的view函式,3. 配置view與模板關

struts2實現檔案功能

package com.upload.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.i

flask如何實現檔案

首先請看templates中的html模板 特別要注意,模板中必須要使用 enctype="multipart/form-data" , 否則form不會做任何事情 <!DOCTYPE html

Java Servlet實現檔案並讀取Zip壓縮包檔案的真實型別

1.上傳檔案servlet PS: 使用ant.jar中的 org.apache.tools.zip.ZipEntry 物件,防止亂碼 package com.chenl.servlets; import java.io.File; import java.io.IOExcep

React使用fetch實現檔案下載

在最近的專案中需要實現檔案上傳下載功能,在以前spring、jsp的專案中實現檔案上傳很簡單,但現在前後端分離,前端使用React,後端使用Spring Boot,實現就沒那麼方便了。 前端React使用fetch而非傳統的XMLHttpRequest從後端獲取

Java利用MultipartFile實現檔案

JavaWeb專案頁面實現檔案上傳功能 jsp檔案增加檔案上傳控制元件,可以放在form表單內,增加隱藏域儲存上傳路徑提交到後臺。 <div class="form-group"> <div class="col-sm-7 center "&g

PHP程式碼是如何實現檔案的?

這裡使用PHP的全域性陣列$_FILES來實現檔案上傳: $_FILES[“file”][“name”] - 被上傳檔案的名稱 $_FILES[“file”][“type”] - 被上傳檔案的型別 $_FILES[“file”][“size”] - 被上傳檔案的大小,以位元組計 $_F

python+selenium win32gui實現檔案 enumerate() Unity3dSendMessage 用法簡單筆記

upload = dr.find_element_by_id('exampleInputFile0') upload.click() time.sleep(1) # win32gui dialog = win32gui.FindWindow('#32770', u'開啟') # 對話方塊 ComboBoxE

Flask 實現檔案下載功能

檔案下載的兩種方法, 一是構建檔案url,二是使用flask.send_from_directory(directory, filename, **options),介紹第一種方法,是我寫著寫著就發現的,第二種方法就查api吧,不介紹了。 檔案下載一般都是先有一

框架如何根據fileupload工具包實現檔案功能

工具包 Apache-fileupload.jar – 檔案上傳核心包。 Apache-commons-io.jar – 這個包是fileupload的依賴包。同時又是一個工具包。 程式碼  servletFileUpload官方API /*獲取tomcat的wor

SpringMultipartHttpServletRequest實現檔案

實現圖片上傳    使用者必須能夠上傳圖片,因此需要檔案上傳的功能。比較常見的檔案上傳元件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http

Android自定義MultipartEntity實現檔案以及使用Volley庫實現檔案

最近在參加CSDN部落格之星,希望大家給投一票,謝謝啦~                       點這裡投我一票吧~前言在開發當中,我們常常需要實現檔案上傳,比較常見的就是圖片上傳,比如修改個頭像什麼的。但是這個功能在Android和iOS中都沒有預設的實現類,對於And

node.js關於使用formidable模組實現檔案至指定目錄的問題

在不指定上傳目錄的情況下: 我的window系統下是預設上傳到了C:\Users\Administrator\AppData\Local\Temp目錄下。 解決辦法: 在express較早的版本中 Express 3 裡的express.bodyParser 相當於

common-fileUpload和 SpringMultipartHttpServletRequest實現檔案、以及過濾器的問題

遇到一個專案中寫的過濾器有些不明白為什麼那麼寫,其實就是以下的第二部分不理解造成的 二、 使用servlet時:多部件表單上傳對servlet取值問題 1)  request.getParameter("..."),這個方法在表單為multiparty/form-d

在EasyUI專案使用FileBox控制元件實現檔案處理

我在較早之前的隨筆《基於MVC4+EasyUI的Web開發框架形成之旅--附件上傳元件uploadify的使用》Web框架介紹中介紹了基於Uploadify的檔案上傳操作,免費版本用的是Jquery+Flash實現檔案的上傳處理,HTML5收費版本的沒有試過。隨著Flash逐漸退出整個環境,很多瀏覽器都可能不

在fragment實現Android圖片至本地JavaWeb服務器

prop prefix adt ilo err 1.10 response try 轉換成 服務器端: 需要一個接受文件的servlet,以及導入兩個包:commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar import ja