uni-app file uploads (h5 way)

1. embedded H5 pages, tags need web-view, as follows:

<web-view src="/hybrid/html/index.html" @message="handleMessage"></web-view>

note:

  • h5 page must be in the project directory: / hybrid / html / below, uni-app because it will not compile
  • @message event is h5 page callbacks to the application to send data

     

     

     2.h5 page code:

  • <!DOCTYPE html>
    <html lang="zh">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <Title> Upload files </ title>
            <style>
                *{
                margin: 0;
                padding: 0;
            }
            .head-btn{
                text-align: center;
                margin-top: 50px;
            }
            .file {
                position: relative;
                display: inline-block;
                background: #D0EEFF;
                border: 1px solid #99D3F5;
                border-radius: 10px;
                padding: 24px 50px;
                overflow: hidden;
                color: #1E88C7;
                text-decoration: none;
                text-indent: 0;
                line-height: 20px;
                font-size: 40px;
            }
            .file input {
                position: absolute;
                font-size: 200px;
                right: 0;
                top: 0;
                opacity: 0;
            }
            .file:hover {
                background: #AADFFD;
                border-color: #78C3F3;
                color: #004974;
                text-decoration: none;
            }
            .determine{
                color: #FFFFFF;
                background-color: #007AFF;
                display: inline-block;
                font-size: 20px;
                border-radius: 5px;
                padding: 8px 24px;
            }
            .showFileName{
                display: inline-block;
                height: 30px;
                min-width: 300px;
            }
            .btn {
                display: block;
                margin: 20px auto;
                padding: 5px;
                background-color: #007aff;
                border: 0;
                color: #ffffff;
                height: 40px;
                width: 200px;
                border-radius: 5px;
            }
            .btn1 {
                display: block;
                margin: 20px auto;
                padding: 5px;
                background-color: #007aff;
                border: 0;
                color: #ffffff;
                height: 40px;
                width: 200px;
                border-radius: 5px;
            }
            
            .btn-red {
                background-color: #dd524d;
            }
            
            .btn-yellow {
                background-color: #f0ad4e;
            }
            
            .desc {
                padding: 10px;
                color: #999999;
            }
        </style>
        </head>
        <body>
            <div class="head-btn">
                <form action="" method="post">
                    <a href="javascript:;" class="file">选择文件
                        <input type="file" name="uploadFile" id="uploadFile" >
                    </a>
                </form>
                <p class="showFileName"></p>
            </div>
            <div>
                <button class="btn" type="button" data-action="redirectTo">确定</button>
                <button class="btn1" type="button" data-action="navigateBack">取消上传</button>
            </div>
            
            <script src="./js/jQuery1_10_2.js"></script>
            <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
            <script>
                $(".file").on("change", "input[type='file']", function() {
                    let filePath = $(this).val();
                    // console.log(filePath);
                    localStorage.setItem("fileAddress", filePath);
                    let lastname = localStorage.getItem("fileAddress");
                    if (lastname != "") {
                        $(".showFileName").html(lastname);
                    } else {
                        $(".showFileName").html("");
                    }
                });
    
                $ ( ' .Btn ' ) .click (function (EVT) {
                     var FormData = new new the FormData (); // Create a form type data 
                    formdata.append ( " Files " , $ ( " #uploadFile " ) [ 0 ]. files [ 0 ]); // get the data uploaded file 
                    formdata.append ( " Operate " , " UploadFile " ); // get the data uploaded file 
                    formdata.append ( " name " ," Name " ); // get the data uploaded file 
                    $ .ajax ({
                        url: 'http://47.97.163.146:8080/Controler.ashx',
                        type: "POST",
                        processData: false,
                        contentType: false,
                        data:formdata,
                        success: function(data) {
                            // Debugger 
                            console.log ( " This is a successful request " );
                        },
                        error: function(err) {
                            the console.log ( " this is a request failed " );
                        }
                    });
    
                    var target = evt.target;
                    if (target.tagName === 'BUTTON') {
                        var action = target.getAttribute('data-action');
                        if (action == 'redirectTo') {
                            uni.redirectTo ({
                                /* url: '/pages/component/index', */
                                url: '/pages/index/index',
                                success:function (d) {
                                    console.log ( " Jump successful " );
                                },
                                fail:function(e){
                                    console.log(e);
                                },
                            });
                        }
                    }
                });
                
                //取消文件上传
                $('.btn1').click(function(evt) {
                    var target = evt.target;
                    if (target.tagName === 'BUTTON') {
                        var action = target.getAttribute('data-action');
                        if (action == 'navigateBack') {
                            uni.navigateBack ({
                                delta: 1
                            });
                        }
                    }
                });
                
                
            </script>
        </body>
    </html>

    Figure style:

     

     

Guess you like

Origin www.cnblogs.com/lbz6/p/12166664.html