哇呀呀 發表於 2020-1-8 14:56:00

uni-app实现文件上传(h5方式)

<p>1.嵌入H5页面,需要采用web-view标签,如下:</p>
<div class="cnblogs_code">
<pre>&lt;web-view src=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/hybrid/html/index.html</span><span style="color: rgba(128, 0, 0, 1)">"</span> @message=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">handleMessage</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/web-view&gt;</pre>
</div>
<p>注意:</p>
<ul>
<li>h5页面必须在项目目录:/hybrid/html/下面,因为这样uni-app才不会进行编译</li>
<li>@message事件是h5页面向应用发送数据的回调<img id="uploading_image_33898" src="https://common.cnblogs.com/images/loading.gif" alt="">
<p>&nbsp;<img src="https://img2018.cnblogs.com/i-beta/1858331/202001/1858331-20200108145129250-1162658841.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;2.h5页面代码:</p>
</li>
<li>
<div class="cnblogs_code">
<p>&lt;!DOCTYPE html&gt;<br>&lt;html lang="zh"&gt;<br>        &lt;head&gt;<br>                &lt;meta charset="UTF-8"&gt;<br>                &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<br>                &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;<br>                &lt;title&gt;上传文件&lt;/title&gt;<br>                &lt;style&gt;<br>                        *{<br>                        margin: 0;<br>                        padding: 0;<br>                }<br>                .head-btn{<br>                        text-align: center;<br>                        margin-top: 50px;<br>                }<br>                .file {<br>                  position: relative;<br>                  display: inline-block;<br>                  background: #D0EEFF;<br>                  border: 1px solid #99D3F5;<br>                  border-radius: 10px;<br>                  padding: 24px 50px;<br>                  overflow: hidden;<br>                  color: #1E88C7;<br>                  text-decoration: none;<br>                  text-indent: 0;<br>                  line-height: 20px;<br>                        font-size: 40px;<br>                }<br>                .file input {<br>                  position: absolute;<br>                  font-size: 200px;<br>                  right: 0;<br>                  top: 0;<br>                  opacity: 0;<br>                        <br>                }<br>                .file:hover {<br>                  background: #AADFFD;<br>                  border-color: #78C3F3;<br>                  color: #004974;<br>                  text-decoration: none;<br>                }<br>                .determine{<br>                        color: #FFFFFF;<br>                        background-color: #007AFF;<br>                        display: inline-block;<br>                        font-size: 20px;<br>                        border-radius: 5px;<br>                        padding: 8px 24px;<br>                }<br>                .showFileName{<br>                        display: inline-block;<br>                        height: 30px;<br>                        min-width: 300px;<br>                }<br>                .btn {<br>                        display: block;<br>                        margin: 20px auto;<br>                        padding: 5px;<br>                        background-color: #007aff;<br>                        border: 0;<br>                        color: #ffffff;<br>                        height: 40px;<br>                        width: 200px;<br>                        border-radius: 5px;<br>                }<br>                .btn1 {<br>                        display: block;<br>                        margin: 20px auto;<br>                        padding: 5px;<br>                        background-color: #007aff;<br>                        border: 0;<br>                        color: #ffffff;<br>                        height: 40px;<br>                        width: 200px;<br>                        border-radius: 5px;<br>                }<br>                <br>                .btn-red {<br>                        background-color: #dd524d;<br>                }<br>                <br>                .btn-yellow {<br>                        background-color: #f0ad4e;<br>                }<br>                <br>                .desc {<br>                        padding: 10px;<br>                        color: #999999;<br>                }<br>                .text{<br>                        background-color: #007AFF;<br>                        text-align: center; <br>                        font-size: 18px; <br>                        color: white;<br>                        height: 45px;<br>                }<br>                .text-in{<br>                        padding-top: 10px;<br>                }<br>                .body{<br>                        background-image: url(../../static/timg.jpg);<br>                }<br>                <br>        &lt;/style&gt;<br>        &lt;/head&gt;<br>        &lt;body class="body"&gt;<br>                &lt;div class="text"&gt;<br>                        &lt;div class="text-in"&gt;<br>                                文件上传<br>                        &lt;/div&gt;<br>                &lt;/div&gt;<br>                &lt;div class="head-btn"&gt;<br>                        &lt;form action="" method="post"&gt;<br>                                &lt;a href="javascript:;" class="file"&gt;选择文件<br>                                        &lt;input type="file" name="uploadFile" id="uploadFile" &gt;<br>                                &lt;/a&gt;<br>                        &lt;/form&gt;<br>                        &lt;p class="showFileName"&gt;&lt;/p&gt;<br>                        <br>                &lt;/div&gt;<br>                &lt;div&gt;<br>                        &lt;button class="btn" type="button" data-action="redirectTo"&gt;确定&lt;/button&gt;<br>                        &lt;button class="btn1" type="button" data-action="navigateBack"&gt;取消上传&lt;/button&gt;<br>                &lt;/div&gt;<br>                <br>                &lt;script src="./js/jQuery1_10_2.js"&gt;&lt;/script&gt;<br>                &lt;script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"&gt;&lt;/script&gt;<br>                &lt;script&gt;<br>                        console.log("转检编号:"+getQuery('id'));                //转检编号<br>                        //取url中的参数值<br>                        function getQuery(id) {<br>                                // 正则:[找寻'&amp;' + 'url参数名字' = '值' + '&amp;']('&amp;'可以不存在)<br>                                let reg = new RegExp("(^|&amp;)"+ id +"=([^&amp;]*)(&amp;|$)");<br>                                let r = window.location.search.substr(1).match(reg);<br>                                //console.log("r="+r);<br>                                if(r != null) {<br>                                        // 对参数值进行解码<br>                                        return decodeURIComponent(r);<br>                                }<br>                                return null;<br>                        }<br>                        <br>                        $(".file").on("change", "input", function() {<br>                                let filePath = $(this).val();<br>                                // console.log(filePath);<br>                                localStorage.setItem("fileAddress", filePath);<br>                                let lastname = localStorage.getItem("fileAddress");<br>                                if (lastname != "") {<br>                                        $(".showFileName").html(lastname);<br>                                } else {<br>                                        $(".showFileName").html("");<br>                                }<br>                        });<br>                        $('.btn').click(function(evt) {<br>                                var fileUrl;<br>                                var formdata = new FormData(); // 创建一个form类型的数据<br>                                formdata.append("files",$("#uploadFile").files); // 获取上传文件的数据<br>                                formdata.append("operate","UpLoadFile"); // 操作码<br>                                formdata.append("name","name");<br>                                //console.log("files:"+formdata.get("files") + ",name:" + formdata.get("name"))<br>                                console.log("begin")<br>                                $.ajax({<br>                                        url: 'http://47.97.163.146:8080/Controler.ashx',<br>                                        type: "POST",<br>                                        async:false,        //同步请求,否则内部嵌套的ajax不会运行<br>                                        processData: false,<br>                                        contentType: false,<br>                                        data:formdata,<br>                                        dataType:"json",<br>                                        success: function(data) {<br>                                                //更新数据库添入附件的url<br>                                                console.log("data:" + JSON.stringify(data))<br>                                                fileUrl = data.url;<br>                                                // var formdata1 = new FormData(); // 创建一个form类型的数据<br>                                                // formdata1.append("operate","UploadFileZJ"); // 操作码<br>                                                // formdata1.append("ID",getQuery('id'));<br>                                                // formdata1.append("url",fileUrl); <br>                                                console.log("url地址:"+fileUrl);<br>                                                console.log("转检编号:"+getQuery('id'));<br>                                                //console.log("url:"+formdata1.get("url") + ",ID:" + formdata1.get("ID"))        //查看url和转检id<br>                                                $.ajax({<br>                                                        url: 'http://47.97.163.146:8080/Controler.ashx',<br>                                                        type: "POST",<br>                                                        data:{operate:"UploadFileZJ",ID:getQuery('id'),url:fileUrl},<br>                                                        dataType:"json",<br>                                                        success: function(data){<br>                                                                console.log("更新成功")<br>                                                        },<br>                                                        error: function(err) {<br>                                                                console.log(555)<br>                                                                console.log("更新失败的");<br>                                                        }<br>                                                })<br>                                                console.log("这是请求成功的");<br>                                        },<br>                                        error: function(err) {<br>                                                <br>                                                console.log("这是请求失败的");<br>                                        }<br>                                });<br>                                console.log("end")<br>                                <br>                                var target = evt.target;<br>                                if (target.tagName === 'BUTTON') {<br>                                        var action = target.getAttribute('data-action');<br>                                        if (action == 'redirectTo') {<br>                                                uni.redirectTo({<br>                                                        url: '/pages/index/index',<br>                                                        success:function (d) {<br>                                                                console.log("跳转成功");<br>                                                        },<br>                                                        fail:function(e){<br>                                                                console.log(e);<br>                                                        },<br>                                                });<br>                                        }<br>                                }<br>                        });<br>                        <br>                        //取消文件上传<br>                        $('.btn1').click(function(evt) {<br>                                var target = evt.target;<br>                                if (target.tagName === 'BUTTON') {<br>                                        var action = target.getAttribute('data-action');<br>                                        if (action == 'navigateBack') {<br>                                                uni.navigateBack({<br>                                                        delta: 1<br>                                                });<br>                                        }<br>                                }<br>                        });<br>                        <br>                        <br>                &lt;/script&gt;<br>        &lt;/body&gt;<br>&lt;/html&gt;</p>
</div>
<p>样式图:<img src="https://img2018.cnblogs.com/i-beta/1858331/202001/1858331-20200108145337275-1946263109.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/lbz6/p/12166664.html
頁: [1]
查看完整版本: uni-app实现文件上传(h5方式)