예제 #1
0
        public async Task <AjaxData> UploadFileAsync(string parameter = "")
        {
            AjaxData <IEnumerable <string> > ajaxData = AjaxData.GetAjaxData <IEnumerable <string> >();

            try
            {
                var files = HttpContext.Current.Request.Files;
                return(await UploadFileMethodAsync(files, parameter));
            }
            catch (Exception ex)
            {
                ajaxData.Msg = $"{ex.Message}-{ex.StackTrace}";
            }
            return(ajaxData);
        }
예제 #2
0
        private async Task <AjaxData> UploadFileMethodAsync(HttpFileCollection files, string msg)
        {
            AjaxData <IEnumerable <string> > ajaxData = AjaxData.GetAjaxData <IEnumerable <string> >();

            try
            {
                var savepaths = new List <string>();//保存的文件名集合
                if (files != null && files.Count > 0)
                {
                    var physicdir = HttpContext.Current.Server.MapPath(string.Format("~/{0}", TempDir));
                    if (!System.IO.Directory.Exists(physicdir))
                    {
                        Directory.CreateDirectory(physicdir);
                    }
                    foreach (var key0 in files.AllKeys)
                    {
                        if (string.IsNullOrWhiteSpace(key0))
                        {
                            continue;
                        }
                        var itemfile   = files[key0];
                        var filename   = string.Format("{0}{1}", Guid.NewGuid().ToString("N"), Path.GetExtension(itemfile.FileName)); //文件名
                        var virpath    = string.Format("/{0}/{1}", TempDir, filename);                                                //保存的文件虚拟目录
                        var physicpath = Path.Combine(physicdir, filename);                                                           //保存的文件物理路径
                        using (var stream = System.IO.File.Open(physicpath, FileMode.Create))
                        {
                            await itemfile.InputStream.CopyToAsync(stream);
                        }
                        savepaths.Add(virpath);
                    }
                    ajaxData.Res = savepaths;
                    ajaxData.OK  = true;
                    ajaxData.Msg = msg;
                }
                else
                {
                    ajaxData.Msg = "没有接收到文件";
                }
            }
            catch (Exception ex)
            {
                ajaxData.Msg = $"{ex.Message}-{ex.StackTrace}";
            }

            return(ajaxData);
        }
예제 #3
0
        private static void LoadRegister(IDictionary <string, AjaxMethod> methods)
        {
            IList <string> types = AjaxData.List();

            if (types != null && types.Count > 0)
            {
                foreach (string t in types)
                {
                    Type type = Type.GetType(t, false);
                    if (type != null)
                    {
                        IAjaxMethods r = Activator.CreateInstance(type) as IAjaxMethods;
                        if (r != null)
                        {
                            r.RegisterMethod(methods);
                        }
                    }
                }
            }
        }