原本是准备学习bootstrap的,想写个文件上传的demo,可是百度了半天,最终也没有找到想要的内容,如今把学习过程当中的资料纪录一下,以便使用:javascript
js下载: 地址是:https://github.com/kartik-v/bootstrap-fileinput/css
这个网站提供了不少的DEMO:http://plugins.krajee.com/file-input/demohtml
从这里下载就能够了,接下来在页面中添加一个js引用和对应的内容:java
主要是CSS和JS的引用: python
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <meta name="Keywords" content="Server monitor,python web, flask redis, flask http" /> <meta name="Description" content="Redis Monitor: a python flask server monitor project, include redis and http server." /> <!-- 上述3个meta标签*必须*放在最前面,任何其余内容都*必须*跟随其后! --> <title>主机管理</title> <!-- Bootstrap core CSS --> <link href="/static/res/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="/static/res/css/style.css" rel="stylesheet"> <link href="/static/res/lib/fileupload/css/fileinput.css" media="all" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="/static/res/favicon.ico"/> <link rel="bookmark" href="/static/res/favicon.ico"/> <title>DashBoard</title> </head> <body> <div class="container kv-main"> <div class="page-header"> <h2>Bootstrap File Input Example </h2> </div> <form enctype="multipart/form-data" method="post" action="/upload" id="uploadForm"> <input id="file-0a" class="file" type="file" name="image_file" multiple data-min-file-count="1"> <br> <button type="submit" class="btn btn-primary">Submit</button> <button type="reset" class="btn btn-default">Reset</button> </form> <div id="kv-error-1" style="margin-top:10px;display:none"></div> <div id="kv-success-1" class="alert alert-success fade in" style="margin-top:10px;display:none"></div> </div> {% include "/include/buttom.html" %} <script src="/static/res/lib/fileupload/js/fileinput.js" type="text/javascript"></script> <script src="/static/res/lib/fileupload/js/fileinput_locale_zh.js" type="text/javascript"></script> <script> $("#file-0a").fileinput({ 'allowedFileExtensions' : ['jpg', 'png','gif'], uploadUrl: "/upload", // server upload action uploadAsync: true, showPreview: false, showUpload : false, maxFileCount: 1, elErrorContainer: '#kv-error-1' }); $("#uploadForm").submit(function(event) { var formData = new FormData(this); event.preventDefault(); $.ajax({ url : '/upload', type : 'POST', data : formData, contentType : false, processData : false, success : function(data) { if (data.result == 'success') { $("#uploadFileDiv").slideToggle("slow"); } else { alert(data); } }, error : function() { alert("data-error"); } }); }); </script> </body> </html>
fileinput的参数有不少,但网站基本上都没有API的:
git
allowedFileExtensions | ["jpg", "png", "gif"] | 文件结尾的名字,这个是要显示在一个特别的地方的。 |
uploadUrl: | "/upload", // server upload action | 若是显示上传的按钮的话,这个url是提交的地址。 |
elErrorContainer: | '#kv-error-1' | 错误信息显示地方 |
uploadAsync: | false | 是否异步方式提交 |
showPreview: | false | 是否显示预览框 |
showUpload: | false | 是否显示提交按钮 |
提交方式有两种:
github
一种是经过他本身提供的方式提交。一种是本身写js代码,这个我以为比较好控制,因此,demo里就这样写吧。web