Python Flask框架中同时上传多个文件的详细代码演

当前位置:首页>Python>flask>Python Flask框架中同时上传多个文件的详细代码演

Python Flask框架中同时上传多个文件的详细代码演

时间:2015-07-05 00:13来源:网络整理 作者:KKWL 点击:
Python Flask框架中同时上传多个文件的详细代码演示,下面的演示代码带有详细的html页面和python代码 python代码 import os# We'll render HTML templates and access data sent by POST# using the request object fr

Python Flask框架中同时上传多个文件的详细代码演示,下面的演示代码带有详细的html页面和python代码
python代码
                                
                        
                                
                                     import os # We'll render HTML templates and access data sent by POST # using the request object from flask. Redirect and url_for # will be used to redirect the user once the upload is done # and send_from_directory will help us to send/show on the # browser the file that the user just uploaded from flask import Flask, render_template, request, redirect, url_for, send_from_directory from werkzeug import secure_filename # Initialize the Flask application app = Flask(__name__) # This is the path to the upload directory app.config['UPLOAD_FOLDER'] = 'uploads/' # These are the extension that we are accepting to be uploaded app.config['ALLOWED_EXTENSIONS'] = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif']) # For a given file, return whether it's an allowed type or not def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS'] # This route will show a form to perform an AJAX request # jQuery is loaded to execute the request and update the # value of the operation @app.route('/') def index(): return render_template('index.html') # Route that will process the file upload @app.route('/upload', methods=['POST']) def upload(): # Get the name of the uploaded files uploaded_files = request.files.getlist("file[]") filenames = [] for file in uploaded_files: # Check if the file is one of the allowed types/extensions if file and allowed_file(file.filename): # Make the filename safe, remove unsupported chars filename = secure_filename(file.filename) # Move the file form the temporal folder to the upload # folder we setup file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) # Save the filename into a list, we'll use it later filenames.append(filename) # Redirect the user to the uploaded_file route, which # will basicaly show on the browser the uploaded file # Load an html page with a link to each uploaded file return render_template('upload.html', filenames=filenames) # This route is expecting a parameter containing the name # of a file. Then it will locate that file on the upload # directory and show it on the browser, so if the user uploads # an image, that image is going to be show after the upload # @app.route('/uploads/') def uploaded_file(filename): return send_from_directory(app.config['UPLOAD_FOLDER'], filename) if __name__ == '__main__': app.run( host="0.0.0.0", port=int("80"), debug=True ) #该代码片段来自于:
                                
                        
                                
                                    index.html代码
                                
                        
                                
                                     [b] How To Upload a File. [i] [i] [/b] #该代码片段来自于:
                                
                        
                                
                                    upload.html
                                
                        
                                
                                     [b] Uploaded files This is a list of the files you just uploaded, click on them to load/download them [u] {% for file in filenames %} [*][url=]{{file}}[/url] {% endfor %} [/u] Code to manage a Upload @app.route('/upload', methods=['POST']) def upload(): # Get the name of the uploaded file #file = request.files['file'] uploaded_files = request.files.getlist("file[]") filenames = [] for file in uploaded_files: # Check if the file is one of the allowed types/extensions if file and allowed_file(file.filename): # Make the filename safe, remove unsupported chars filename = secure_filename(file.filename) # Move the file form the temporal folder to the upload # folder we setup file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) filenames.append(filename) # Redirect the user to the uploaded_file route, which # will basicaly show on the browser the uploaded file # Load an html page with a link to each uploaded file return render_template('upload.html', filenames=filenames) [/b] #该代码片段来自于:

------分隔线----------------------------