起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: wolffery

[结贴] 用AttachmentSimple怎么把文件上传到服务器上啊?

  [复制链接]

7

主题

38

帖子

96

积分

初级会员

Rank: 2

积分
96
QQ
发表于 2018-11-2 20:01:06 | 显示全部楼层
本帖最后由 gaiyi 于 2018-12-26 16:10 编辑

文件上传

文件上传
我在3.7版本的时候在modelLoad方法中,自定义了        var URL ="";//自己定义的服务器action路径,用的是.net,就是一般处理程序ashx的路径
                this.comp("attachmentSimple1").actionUrl = URL;
                this.comp("attachmentSimple1").uploader.actionUrl = URL;
但是升到3.8之后,这样做失效了,上传组件只认识在控件属性中填写的actionUrl,然后我用截图中的方式也实现了,就是直接把上传路径填写在控件actionUrl属性中,后台的处理大概就是
Stream oStream = context.Request.Files[0].InputStream;
…………
…………
只是这样子做,没办法监听上传的过程,如果后台处理返回了错误码,前台不知如何处理。
-----------------------------------------------------------------------------------------更新------------------------------------------------------------------------------------------
仔细研究了一下组件之后,其实方法是可以监听的:成功解决问题

// 自定义上传组件属性和限制,这是我在自定义共用js(utils)中定义的一个方法,可以在页面中通过
var attachmentSimple1= this.comp("attachmentSimple1");
取到该控件。然后调用自定义方法:例如:utils.attachment(attachmentSimple1);
                attachment : function(att) {
                        var actionUrl = this.baseUrl() + "/api/newFile.ashx?action=uploadFiles";
                        // 监听选中事件
                        att.uploader.on('onFileSelected', function(event) {
                                if (event.file.size > 31457280) {
                                        alert("上传的文件大小不能超过30M");
                                        event.cancel = true;
                                }

                                var houzhui = event.file.name.split(".")[1];
                                if (houzhui != "rar") {
                                        alert("上传文件仅限于rar");
                                        event.cancel = true;
                                }
                        });
                        // 监听上传事件
                        att.uploader.on('onStart', function(event) {
                                var items = att.getItems();
                                if (items.length > 0) {
                                        $.each(items, function(i, v) {
                                                var storeFileName = v.storeFileName;
                                                var ownerID = att.getOwnerID(v);
                                                att.deleteFile(storeFileName, ownerID);
                                        });
                                }
                                event.source.actionUrl = actionUrl;
                                var storeFileName = (new justep.UUID()).valueOf();
                                event.file.data = {
                                        fileName : event.file.name,
                                        storeFileName : storeFileName,
                                        ownerID : att.getOwnerID()
                                };
                        });
                }

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-24 01:15 , Processed in 0.059231 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表