1.   阿里云服务器1888元代金券领取
  2.   本网站所有源码包解压密码:www.youhutong.com
登录  帮助问答

百度ueditor编辑器文件视频图片直传OSS - 04):附件直传OSS修改案例

小川 技术文章
郑重声明:
  本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,否则后果请用户自负,下载后请24小时内删除。 本站所有内容均不能保证其完整性,不提供任何技术支持,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用。
  如侵犯到任何版权问题,请立即告知本站(侵权投诉),本站将及时删除并致以最深的歉意

第一步:

    写好获取直传oss所需要参数的接口,不懂的可以去看oss官网上的文档web直接oss


第二步:

    前段页面引入插件、启动插件,并传入获取oss直传所需参数的接口地址

    如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
 
<script language="JavaScript" src="/static/js/jquery.js"></script>
</head>
<body>
 
<div class="demo">
    <script id="container" name="describe" type="text/plain"></script>
</div>
 
</body>
<script language="JavaScript" src="/static/js/ueditor/ueditor.config.js"></script>
<script language="JavaScript" src="/static/js/ueditor/ueditor.all.js"></script>
<script language="JavaScript">
var server_url = "{:url('alioss/get',['type'=>4])}";
var editor = UE.getEditor('container',{server_url:server_url});
</script>
</html>

第三步:

    修改相关js代码段实现附件直传OSS,找到ueditor\dialogs\attachment\attachment.js查找内容修改:

01.png

02.png

03.png

04.png

05.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/****************************************************************/
/*********   附件直传OSS修改(共有5处修改,第1处修改)   ********/
/***********************本段修改开始*****************************/
/*    新代码    */
OssSign = null,
/***********************本段修改结束*****************************/
 
 
 
/****************************************************************/
/*********   附件直传OSS修改(共有5处修改,第2处修改)   ********/
/***********************本段修改开始*****************************/
/*    原代码    */
// server: actionUrl,
// fileVal: editor.getOpt('imageFieldName'),
/*    新代码    */
fileVal: 'file',
/***********************本段修改结束*****************************/
 
 
 
/****************************************************************/
/*********   附件直传OSS修改(共有5处修改,第3处修改)   ********/
/***********************本段修改开始*****************************/
/*    原代码    */
// uploader.on('all', function (type, files) {
//     switch (type) {
//         case 'uploadFinished':
//             setState('confirm', files);
//             break;
//         case 'startUpload':
//             /* 添加额外的GET参数 */
//             var params = utils.serializeParam(
//    editor.queryCommandValue('serverparam')) || '',
//                 url = utils.formatUrl(actionUrl + 
//    (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
//             uploader.option('server', url);
//             setState('uploading', files);
//             break;
//         case 'stopUpload':
//             setState('paused', files);
//             break;
//     }
// });
/*    新代码    */
uploader.on('all'function (type, files) {
    switch (type) {
        case 'uploadFinished':
            setState('confirm', files);
            break;
        case 'startUpload':
            uploader.option('server', OssSign['host']);
            setState('uploading', files);
            break;
        case 'stopUpload':
            setState('paused', files);
            break;
    }
});
/***********************本段修改结束*****************************/
 
 
 
/****************************************************************/
/*********   附件直传OSS修改(共有5处修改,第4处修改)   ********/
/***********************本段修改开始*****************************/
/*    原代码    */
// uploader.on('uploadBeforeSend', function (file, data, header) {
//     //这里可以通过data对象添加POST参数
//     header['X_Requested_With'] = 'XMLHttpRequest';
// });
/*    新代码    */
uploader.on('uploadBeforeSend'function (file, data, header) {
    // 获取新的文件名(这里只是为了每上传一个文件的名称都不一样)
    $.get(editor.getOpt('server_url'), {}, function (sign) {
        OssSign = JSON.parse(sign);
    });
    // 休眠0.1秒(休眠是为了让上面的先获取成功文件名)
    var now = new Date();
    var exitTime = now.getTime() + 100;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime){
            break;
        }
    }
    // 获取文件后缀
    var fileext = data.name ? data.name.substr(data.name.lastIndexOf('.')):'.jpeg';
    data = $.extend(data, {
        'OSSAccessKeyId': OssSign['accessid'],
        'policy': OssSign['policy'],
        'Signature': OssSign['signature'],
        'key': OssSign['filename'] + fileext,
        'success_action_status''200',
        'callback': OssSign['callback']
    });
    file.path = OssSign['filename'] + fileext;
});
/***********************本段修改结束*****************************/
 
 
 
/****************************************************************/
/*********   附件直传OSS修改(共有5处修改,第5处修改)   ********/
/***********************本段修改开始*****************************/
/*    原代码    */
// $upload.on('click', function () {
//     if ($(this).hasClass('disabled')) {
//         return false;
//     }
 
//     if (state === 'ready') {
//         uploader.upload();
//     } else if (state === 'paused') {
//         uploader.upload();
//     } else if (state === 'uploading') {
//         uploader.stop();
//     }
// });
/*    新代码    */
start = function () {
    if (state === 'ready') {
        uploader.upload();
    else if (state === 'paused') {
        uploader.upload();
    else if (state === 'uploading') {
        uploader.stop();
    }
    };
    $upload.on('click'function () {
        if ($(this).hasClass('disabled')) {
        return false;
    }
    if (!OssSign) {
        $.get(editor.getOpt('server_url'), {}, function (sign) {
            OssSign = JSON.parse(sign);
            uploader['options']['server'] = OssSign['host'];
            start();
        });
    else {
        start();
    }
});
/***********************本段修改结束*****************************/

至此附件直传OSS已经可以了


 浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!

转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/220.html


  1、本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,下载后请24小时内删除。
  2、本站所有内容均不能保证其完整性,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用
  3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
  4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意
( 0 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情