Пример #1
0
        /// <summary>
        ///     上传文件
        /// </summary>
        /// <param name="file">FileUpload</param>
        /// <param name="filePath">要保存的文件路径,</param>
        /// <param name="lstFileType">允许上传的文件类型,大小,单位为KB,Size=0表示无任何限制</param>
        /// <param name="fileName">自定义文件名称</param>
        public stuUpLoadFile Upload(HttpPostedFile file, string filePath, string fileName,
                                    List <stuUpLoadFileType> lstFileType = null)
        {
            var uploadFile = new stuUpLoadFile {
                ErrorMessage = string.Empty
            };

            filePath = Url.ConvertPath(filePath);
            if (!filePath.EndsWith("/"))
            {
                filePath += "/";
            }

            //判断根目录,保存目录是否为空
            if (string.IsNullOrWhiteSpace(filePath))
            {
                uploadFile.ErrorMessage = "保存路径没有填写,请联系管理员!";
                return(uploadFile);
            }

            // 检测上传文件的合法性
            if (!CheckFile(file, ref uploadFile, lstFileType))
            {
                return(uploadFile);
            }

            #region   文件操作

            try
            {
                #region 创建文件目录(任何级别目录)

                var fileMapPath = Webs.GetMapPath(filePath); //获取目录绝对路径
                Directory.CreateDirectory(fileMapPath);

                #endregion

                file.SaveAs(fileMapPath + fileName);

                uploadFile.FileName          = fileName;
                uploadFile.FileNamePrefix    = Path.GetFileNameWithoutExtension(fileName);
                uploadFile.FileNameExtension = Path.GetExtension(fileName);
                uploadFile.Size        = file.ContentLength >= 1024 ? file.ContentLength / 1024 : 1;
                uploadFile.FilePath    = filePath;
                uploadFile.FileMapPath = fileMapPath;
                uploadFile.IsSuccess   = true;
            }

            catch (Exception Ex)
            {
                uploadFile.IsSuccess    = false;
                uploadFile.ErrorMessage = Ex.Message;
                return(uploadFile);
            }

            #endregion

            return(uploadFile);
        }
Пример #2
0
        /// <summary>
        ///     Request.QueryString
        /// </summary>
        public static T QS <T>(string parmsName, T defValue = default(T))
        {
            if (HttpContext.Current == null)
            {
                return(defValue);
            }
            var value = HttpContext.Current.Request.RequestContext.RouteData.Values[parmsName] ?? string.Empty;

            return(ConvertHelper.ConvertType(Webs.UrlDecode(value.ToString()), defValue));
        }
Пример #3
0
        /// <summary>
        ///     以指定的流,向客户端输出
        /// </summary>
        /// <param name="fileStream"></param>
        /// <param name="fileName"></param>
        /// <param name="contentType">将文件输出时设置的ContentType</param>
        public static void OutPut(FileStream fileStream, string fileName, string contentType = "application/octet-stream")
        {
            var response = HttpContext.Current.Response;

            try
            {
                // 需要读的数据长度
                var dataToRead = fileStream.Length;

                response.ContentType = contentType;
                response.AddHeader("Content-Disposition", "attachment;filename=" + Webs.UrlEncode(fileName).Replace("+", " "));

                // 缓冲区为10k
                var buffer = new Byte[10000];
                while (dataToRead > 0)
                {
                    // 检查客户端是否还处于连接状态
                    if (HttpContext.Current.Response.IsClientConnected)
                    {
                        var length = fileStream.Read(buffer, 0, 10000);
                        response.OutputStream.Write(buffer, 0, length);
                        response.Flush();
                        buffer     = new Byte[10000];
                        dataToRead = dataToRead - length;
                    }
                    else
                    {
                        // 如果不再连接则跳出死循环
                        dataToRead = -1;
                    }
                }
            }
            catch (Exception ex)
            {
                response.Write("Error : " + ex.Message);
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
                response.End();
            }
        }
Пример #4
0
 /// <summary>
 ///     Request.QueryString
 /// </summary>
 public static T QS <T>(string parmsName, T defValue)
 {
     return(HttpContext.Current == null ? defValue : ConvertHelper.ConvertType(Webs.UrlDecode(HttpContext.Current.Request.QueryString[parmsName] ?? string.Empty), defValue));
 }