/// <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)); } }
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); }
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, "文件类型非法!"); } } }
/// <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; }