1. 程式人生 > >06.LoT.UI 前後臺通用框架分解系列之——浮誇的圖片上傳

06.LoT.UI 前後臺通用框架分解系列之——浮誇的圖片上傳

<script type="text/javascript">
        //1.uploader初始化。 auto-是否自動上傳
        var uploader = WebUploader.create({
            server: '/Home/Upload',
            swf: '/open/webuploader/Uploader.swf',
            pick: '#lot-picker',
            auto: true,                     //自動上傳
            //chunked: true,                //斷點續傳-單個預設5M
            duplicate: false,               //檔案去重
            prepareNextFile: true,          //提前準備下一個檔案(可選,單檔案不建議開)
            //formData: { },                //自定義引數表,每次請求都會發送這些引數
            paste: document.body,           //啟動剪貼簿(可選)
            dnd: $('#lot-uploader'),        //啟動拖拽(可選)
            fileNumLimit: 5,                //檔案總數量
            fileSingleSizeLimit: 10485760,  //單個檔案最大值(IIS預設<=4M,可自行設定:httpRuntime的maxRequestLength)
            accept: {
                title: 'Images',
                extensions: 'gif,jpg,jpeg,bmp,png',
                mimeTypes: 'image/*'
            }
        });

        //2.檔案新增時,新增樣式和縮圖
        uploader.on('fileQueued', function (file) {
            var $li = $(
                    '<div id="' + file.id + '" class="file-item thumbnail">' +
                        '<img>' +
                        '<div class="info info-top">Szie:' + Math.floor(file.size / 1024) + 'kb' + '</div>' +
                        '<div class="info info-bot">' + file.name + '</div>' +
                    '</div>'
                    ),
                $img = $li.find('img');
            $('#lot-filelist').append($li);
            // 建立縮圖
            uploader.makeThumb(file, function (error, src) {
                if (error) {
                    $img.replaceWith('<span>不能預覽</span>');
                    return;
                }
                $img.attr('src', src);
            }, 100, 100);
            ////計算檔案MD5(可加)
            //uploader.md5File(file).then(function (val) {
            //    console.log('md5:',val,'-',file.name);
            //});
        });

        //3.檔案上傳過程中建立進度條實時顯示。
        uploader.on('uploadProgress', function (file, percentage) {
            var $li = $('#' + file.id),
                $percent = $li.find('.progress span');
            //避免重複建立
            if (!$percent.length) {
                $percent = $('<p class="progress"><span></span></p>').appendTo($li).find('span');
            }
            $percent.css('width', percentage * 100 + '%');
        });

        //4.檔案上傳成功,給item新增成功class, 用樣式標記上傳成功。
        uploader.on('uploadSuccess', function (file, data) {
            if (data.status) {
                $('#' + file.id).addClass('upload-state-done');
            } else {
                showMsg(file, data.msg);
            }
        });

        //5.失敗系列的處理
        //5.1新增失敗處理
        uploader.on('error', function (log) {
            switch (log) {
                case 'F_EXCEED_SIZE':
                    addMsg('檔案10M以內'); break;
                case 'Q_EXCEED_NUM_LIMIT':
                    addMsg('已超最大上傳數'); break;
                case 'Q_TYPE_DENIED':
                    addMsg('檔案型別不正確'); break;
                case 'F_DUPLICATE':
                    addMsg('檔案已經被新增'); break;
                default:
                    addMsg('檔案新增失敗~'); break;
            }
        });
        //5.2上傳失敗處理
        uploader.on('uploadError', function (file) {
            showMsg(file, '上傳失敗');
        });

        //錯誤資訊顯示
        function showMsg(file, msg) {
            var $li = $('#' + file.id), $error = $li.find('div.error');
            //避免重複建立
            if (!$error.length) {
                $error = $('<div class="error"></div>').appendTo($li);
            }
            $error.text(msg);
        }
        //錯誤資訊提示
        function addMsg(msg) {
            $('#lot-uploader').prepend('<h3 class="temp-log" style="color:red;">' + msg + '</h3>')
            setTimeout(function () {
                $('.temp-log').remove();
            }, 2000);
        }
    </script>

相關推薦

06.LoT.UI 前後臺通用框架分解系列——浮誇圖片

<script type="text/javascript"> //1.uploader初始化。 auto-是否自動上傳 var uploader = WebUploader.create({ server: '/Home/Uplo

01.LoT.UI 前後臺通用框架分解系列——小圖片背景全屏顯示(可自動切換背景)

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><

07.LoT.UI 前後臺通用框架分解系列——輕巧的文字編輯器

/// <summary> /// 圖片上傳 /// </summary> /// <returns></returns> public ContentResult Upload(Htt

05.LoT.UI 前後臺通用框架分解系列——漂亮的時間選擇器

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

08.LoT.UI 前後臺通用框架分解系列——多樣的Tag選擇器

這個必須說下,本來是用Bootstrap-Select做的,很漂亮,正好後臺也是Bootstrap。後來發現不能滿足需求。標籤有則選,沒則新增 而Bootstrap-Select的文字框是不可以手動輸入的==》so,用了Select2,這個可以不依賴Bootstrap 兩種我都做了Demo,至於取捨

04.LoT.UI 前後臺通用框架分解系列——輕巧的彈出框

說到這個彈出層,必須說下,本來準備用Bootstrap裡面的靜態框的,太麻煩不能隨意彈,於是就用了以前使用的工具,很方便很輕量級。 先看在LoT.UI裡面的應用效果圖: 對話方塊: 資訊提示 Div彈框 api寫的很清楚了,這些是最常用的幾個 開

03.LoT.UI 前後臺通用框架分解系列——多樣的表格

var lotTab = $('#lotTable'); $(document).ready(function () { lotTab.bootstrapTable({ toolbar: '#lotToolbar',

07.LoT.UI 前後臺通用框架分解系列——強大的文字編輯器

/* 前後端通訊相關的配置,註釋只允許使用多行方式 */ { /* 上傳圖片配置項 */ "imageActionName": "uploadimage", /* 執行上傳圖片的action名稱 */ "imageFieldName": "upfile", /* 提交的圖片

02.LoT.UI 前後臺通用框架分解系列——靈活的選單欄

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

SSM框架修改資料中實現圖片功能

第一步:當然是需要加入必要的兩個jar包 commons-fileupload-1.3.jar、commons-io-1.2.jar 或者引入依賴: <dependency> <groupId>commons-

(一)surging 微服務框架使用系列surging 的準備工作rabbitmq安裝

-s nec word 完成 ngs spa size win64 安裝目錄 (1)下載erlang: http://www.erlang.org/download/otp_win64_17.3.exe 並安裝 (2)下載RabbitMQ: http://www.rabbi

(二)surging 微服務框架使用系列surging 的準備工作consul安裝

-s 接口 web web管理 ice ips ace 個數 不能 suging 的註冊中心支持consul跟zookeeper。因為consul跟zookeeper的配置都差不多,所以只是consul的配置 consul下載地址:https://www.consul.io

【SSH框架系列 Spring 整合 Hibernate 框架

操作 enter pda 就是 負責 spring配置 1.0 port -s 1、SSH 三大框架整合原理 Spring 與 Struts2 的整合就是將 Action 對象交給 Spring 容器來負責創建。 Spring 與 Hibernate 的整合就是將

(五)surging 微服務框架使用系列緩存-reids

contain option tac 初始 目前 運行程序 執行 tin 直接 1.服務跟客戶端初始化的時候需要添加緩存配置 1 var host = new ServiceHostBuilder() 2 .Re

【剖析 | SOFARPC 框架系列SOFARPC序列化比較

前言 在應用服務化架構中,RPC 框架是非常重要的基礎元件。而在 RPC 框架當中,序列化(以及反序列化)又是必不可少的一環。因為序列化的效能對整體框架效能有比較大的影響,之前的文章中,我們已經詳細剖析了 SOFARPC 各個核心功能模組的實現原理,想必大家已經很清楚 RPC 的呼叫流程。 在整個 RPC

[gitbook] Android框架分析系列Android stagefright框架

請支援作者原創: https://mr-cao.gitbooks.io/Android/content 點選開啟連結 本文以Android6.0系統原始碼為基礎,分析Android

springMVC框架下——通用介面圖片介面

  我所想要的圖片上傳介面是指伺服器端在完成圖片上傳後,返回一個可訪問的圖片地址。 spring mvc框架下圖片上傳非常簡單,如下  1 @RequestMapping(value="/uploadImg", method=RequestMethod.POST) 2 @ResponseBody

Jfinal框架學習系列圖片

昨天學習了一下在jfianl中使用jsp,然後實現了一個基本的增刪改查的demo示例,今天瞭解了一下在jfinal中實現檔案上傳的功能,這裡配合 了uploadify實現圖片上傳。。。這裡只是可以簡單地實現上傳的功能,有的時候也需要自己進行壓縮處理,,,貌似視

.NET Core 3 WPF MVVM框架 Prism系列資料繫結

 一.安裝Prism   1.使用程式包管理控制檯 Install-Package Prism.Unity -Version 7.2.0.1367 也可以去掉‘-Version 7.2.0.1367’獲取最新的版本  2.使用管理解決方案的

.NET Core 3 WPF MVVM框架 Prism系列命令

本文將介紹如何在.NET Core3環境下使用MVVM框架Prism的命令的用法 一.建立DelegateCommand命令      我們在上一篇.NET Core 3 WPF MVVM框架 Prism系列之資料繫結中知道prism實現資料繫結的方式,我們按照標準的寫法來實現,