/// <summary>
 /// 检查文件大小
 /// </summary>
 /// <param name="message">上传返回信息</param>
 /// <param name="postFile">HttpPostedFile</param>
 private void CheckSize(UploadFileMessage message, HttpPostedFile postFile)
 {
     if (postFile.ContentLength / 1024.0 / 1024.0 > uploadFileSetting.MaxSizeM)
     {
         AddUploadFileMessage(message, string.Format("对不起上传文件过大,不能超过{0}M!", uploadFileSetting.MaxSizeM));
     }
 }
예제 #2
0
        public void UploadFile(string filePath)
        {
            var bytes       = File.ReadAllBytes(filePath);
            var fileName    = Path.GetFileName(filePath);
            var peerNewFile = new PeerFile(fileName, bytes);
            var message     = new UploadFileMessage(peerNewFile);

            processor.Send(message);
        }
예제 #3
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Request.Files.Count > 0)
     {
         WebUploadFile _uploadFile = new WebUploadFile();
         _uploadFile.SetFileDirectory("/上传");
         UploadFileMessage _message = _uploadFile.Save(Request.Files["File1"]);
         Label1.Text = _message.HasError == false ? "上传成功" : "上传失败" + _message.Message;
     }
 }
        /// <summary>
        /// 保存表单文件,根据HttpPostedFile
        /// </summary>
        /// <param name="postFile">HttpPostedFile</param>
        /// <returns>上传返回信息</returns>
        private UploadFileMessage CommonSave(HttpPostedFile postFile)
        {
            UploadFileMessage _uploadFileMessage = new UploadFileMessage();

            try
            {
                if (postFile == null || postFile.ContentLength == 0)
                {
                    AddUploadFileMessage(_uploadFileMessage, "没有文件!");
                    return(_uploadFileMessage);
                }

                //文件名
                string _fileName = uploadFileSetting.IsUseOldFileName ? postFile.FileName : DateTime.Now.FormatDate(12) + Path.GetExtension(postFile.FileName);
                //验证格式
                this.CheckingType(_uploadFileMessage, postFile.FileName);
                //验证大小
                this.CheckSize(_uploadFileMessage, postFile);

                if (_uploadFileMessage.HasError)
                {
                    return(_uploadFileMessage);
                }

                string _webDir = string.Empty;
                // 获取存储目录
                string _directory = this.GetDirectory(ref _webDir),
                       _filePath  = _directory + _fileName;

                if (File.Exists(_filePath))
                {
                    if (uploadFileSetting.IsRenameSameFile)
                    {
                        _filePath = _directory + DateTime.Now.FormatDate(12) + "-" + _fileName;
                    }
                    else
                    {
                        File.Delete(_filePath);
                    }
                }

                // 保存文件
                postFile.SaveAs(_filePath);
                _uploadFileMessage.FilePath    = _filePath;
                _uploadFileMessage.FilePath    = _webDir + _fileName;
                _uploadFileMessage.FileName    = _fileName;
                _uploadFileMessage.WebFilePath = _webDir + _fileName;
                return(_uploadFileMessage);
            }
            catch (Exception ex)
            {
                AddUploadFileMessage(_uploadFileMessage, ex.Message);
                return(_uploadFileMessage);
            }
        }
        /// <summary>
        /// 验证文件类型
        /// </summary>
        /// <param name="message">上传返回信息.</param>
        /// <param name="fileName">文件名称.</param>
        private void CheckingType(UploadFileMessage message, string fileName)
        {
            if (uploadFileSetting.FileType != "*")
            {
                // 获取允许允许上传类型列表
                string[] _typeList = uploadFileSetting.FileType.Split(',');
                // 获取上传文件类型(小写)
                string _type = Path.GetExtension(fileName).ToLowerInvariant();;

                // 验证类型
                if (_typeList.Contains(_type) == false)
                {
                    this.AddUploadFileMessage(message, "文件类型非法!");
                }
            }
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        private void UploadFile(UploadFileMessage message)
        {
            try
            {
                var client = new WebClient();
                client.DownloadProgressChanged += (s, e) =>
                {
                    // avoid spam by sending only 5 by 5%
                    if (e.ProgressPercentage % 5 == 0)
                    {
                        Send(new UploadProgressMessage
                        {
                            Id         = message.Id,
                            Path       = message.Path,
                            Percentage = e.ProgressPercentage,
                            Uri        = message.Uri
                        });
                    }
                };

                client.DownloadFileCompleted += (s, e) =>
                {
                    if (e.Error != null)
                    {
                        SendStatus(message.WindowId, message.Id, "File upload (downloading from web)", e.Error);
                    }
                    else
                    {
                        // -1 mean finished
                        Send(new UploadProgressMessage
                        {
                            Id         = message.Id,
                            Path       = message.Path,
                            Percentage = -1,
                            Uri        = message.Uri
                        });
                    }
                    client.Dispose();
                };
                client.DownloadFileAsync(new Uri(message.Uri), message.Path);
            }
            catch (Exception e)
            {
                SendStatus(message.WindowId, message.Id, "File upload (downloading from web)", e);
            }
        }
 /// <summary>
 /// 抛出错误
 /// </summary>
 /// <param name="message">上传返回信息</param>
 /// <param name="msg">错误消息</param>
 private void AddUploadFileMessage(UploadFileMessage message, string msg)
 {
     message.HasError = true;
     message.Message  = msg;
 }