本文实例讲述了Asp.Net的FileUpload类实现上传文件的方法。分享给大家供大家参考。
具体功能代码如下:
using System; using System.Collections.Generic; using System.Text; using System.Web.UI; using System.Web; using System.Web.UI.WebControls; using System.Collections; using System.Drawing; using System.Drawing.Imaging; using System.IO;namespace CSFramework.BLL { /// <summary> /// 支持上传的文件类型 /// </summary> public enum UploadFileType { ArticleAttachment = 1, Image = 2, Video = 3, All = 4 } /// <summary> /// 上传文件管理类 /// </summary> public class CFileUpload { private FileUpload _fileUpload; private string _savePath; private string _LastUploadedFile = string.Empty; private bool _AutoGenFileName = false; private bool _AutoGenWatermark = false; public string LastUploadedFile { get { return _LastUploadedFile; } } private string _Error = ""; private string PICTURE_FILE = "[.gif.png.jpeg.jpg]"; private string ZIP_FILE = "[.zip.rar]"; private string MUILT_MEDIA_FILE = "[.mpeg.mpg.fla.wma]"; private int IMG_MAX_WIDTH = 700;//指定宽度 private int IMG_MAX_HEIGHT = 0;//未指定高度 private int MAX_SIZE_UPLOAD = 1024;//最大支持上传小于1MB的文件。 /// <summary> /// 构造器 /// </summary> /// <param name="fileUpload">Asp.net FileUpload对象</param> /// <param name="savePath">保存目录,不包含文件名</param> /// <param name="autoGenFileName">自动生成文件名</param> public CFileUpload(FileUpload fileUpload, string savePath, bool autoGenFileName, bool autoGenWatermark) { _savePath = savePath; _fileUpload = fileUpload; _AutoGenFileName = autoGenFileName; _AutoGenWatermark = autoGenWatermark; } /// <summary> /// 构造器 /// </summary> /// <param name="fileUpload">Asp.net FileUpload对象</param> /// <param name="savePath">保存目录,不包含文件名</param> public CFileUpload(FileUpload fileUpload, string savePath) { _savePath = savePath; _fileUpload = fileUpload; } /// <summary> /// 上传RAR文件 /// </summary> public bool UploadRARFile() { return DoUpload(ZIP_FILE); } /// <summary> /// 上传视频文件 /// </summary> public bool UploadVideo() { return DoUpload(MUILT_MEDIA_FILE); } /// <summary> /// 上传图片文件 /// </summary> public bool UploadImage() { return DoUpload(PICTURE_FILE); } public bool UploadImage(int maxWidth, int maxHeight) { this.IMG_MAX_WIDTH = maxWidth; this.IMG_MAX_HEIGHT = maxHeight; return DoUpload(PICTURE_FILE); } /// <summary> /// 上传任何支持的文件 /// </summary> public bool UploadAnySupported() { return DoUpload(PICTURE_FILE ZIP_FILE MUILT_MEDIA_FILE); } /// <summary> /// 生成新的文件名 /// </summary> private string GetNewFileName(string folder, string fileName) { if (_AutoGenFileName) //自动生成32位GUID文件名 { string ext = System.IO.Path.GetExtension(fileName); string newfile = Guid.NewGuid().ToString().Replace("-", "") ext; return folder newfile; } else { if (System.IO.File.Exists(folder fileName)) { string ext = System.IO.Path.GetExtension(fileName); string filebody = fileName.Replace(ext, ""); int x = 1; while (true) //如果文件存在,生成尾部带(x)的文件 { string newfile = folder filebody "(" x.ToString() ")" ext; if (!System.IO.File.Exists(newfile)) return folder filebody "(" x.ToString() ")" ext; else x ; } } else return folder fileName; } } /// <summary> /// 最大支持小于1MB的文件。 /// </summary> private bool AllowMaxSize(int fileLength) { double kb = fileLength / 1024; return (int)kb < MAX_SIZE_UPLOAD; } private bool DoUpload(string allowedExtensions) { try { bool fileOK = false; if (!_fileUpload.HasFile) throw new Exception("没有文件!"); //上传控件中如果不包含文件,退出 // 得到文件的后缀 string fileExtension = System.IO.Path.GetExtension(_fileUpload.FileName).ToLower(); // 看包含的文件是否是被允许的文件后缀 fileOK = allowedExtensions.IndexOf(fileExtension) > 0; if (!fileOK) throw new Exception("不支持的文件格式!"); //检查上传文件大小 fileOK = AllowMaxSize(_fileUpload.FileBytes.Length); if (!fileOK) throw new Exception("图片文件不能大于" MAX_SIZE_UPLOAD.ToString() "KB!"); try { // 文件另存在服务器指定目录下 string savefile = GetNewFileName(_savePath, _fileUpload.FileName); if (IsUploadImage(fileExtension))//保存图片 { System.Drawing.Image output = CImageLibrary.FromBytes(_fileUpload.FileBytes); // 检查图片宽度/高度/大小 if (this.IMG_MAX_WIDTH != 0 && output.Width > this.IMG_MAX_WIDTH) { output = CImageLibrary.GetOutputSizeImage(output, this.IMG_MAX_WIDTH); } Bitmap bmp = new Bitmap(output); this.CreateDir(Path.GetDirectoryName(savefile)); bmp.Save(savefile, output.RawFormat); bmp.Dispose(); output.Dispose(); if (_AutoGenWatermark) { WatermarkImage genWatermark = new WatermarkImage(); genWatermark.DrawWords(savefile, AppConfig.Current.WatermarkMain, AppConfig.Current.WatermarkDesc, float.Parse("0.2")); } } else//其它任何文件 { this.CreateDir(Path.GetDirectoryName(savefile)); _fileUpload.PostedFile.SaveAs(savefile); } _LastUploadedFile = savefile; return true; } catch (Exception ex) { throw new Exception("上传文件时发生未知错误!" ex.Message); } } catch (Exception ex) { _Error = ex.Message; return false; } } private void CreateDir(string dir) { if (Directory.Exists(dir) == false) Directory.CreateDirectory(dir); } private bool IsUploadImage(string fileExtension) { bool isImage = PICTURE_FILE.IndexOf(fileExtension) > 0; return isImage; } } }
希望本文所述对大家的asp.net程序设计有所帮助。
本文向大家介绍用fileupload组件实现的大文件上传简单实例,包括了用fileupload组件实现的大文件上传简单实例的使用技巧和注意事项,需要的朋友参考一下 1.FileUploadServlet.java文件,实现上传处理 2.FileUpload.html文件,实现上传页面。 3.配置web.xml文件中的的servlet和过滤器,过滤器解决上传文件名为中文时出现乱码。 4.过滤器
本文向大家介绍JQuery fileupload插件实现文件上传功能,包括了JQuery fileupload插件实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 道理相通,我简单分享下在.net MVC下的实装。 1.制作Model类 2.实装controller里的对应方法,我这个处理逻辑比较复杂,懒得修改了,反正就这个意思 3.页面的实装 √,就是这个样子 还附赠了一个简易lodin
本文向大家介绍Java组件FileUpload上传文件实现代码,包括了Java组件FileUpload上传文件实现代码的使用技巧和注意事项,需要的朋友参考一下 一般在用Servlet处理表单元素时,表单元素都是一些简单的文本,Servlet很容易用Request.getParameter()就可以处理。但是当表单不止包含一些简单的文本,比如有上传文件域时,Servlet直接从HttpServlet
本文向大家介绍asp.net core mvc实现文件上传实例,包括了asp.net core mvc实现文件上传实例的使用技巧和注意事项,需要的朋友参考一下 工作用到文件上传的功能,在这个分享下 ~~ Controller: view: 文件是上传到wwwroot目录文件下的,这我也看不太懂还在学习,欢迎大家交流~~ -------------------------------
本文向大家介绍使用fileupload组件实现文件上传功能,包括了使用fileupload组件实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 FileUpload文件上传 fileUpload是apache的commons组件提供的上传组件,它最主要的工作就是帮我们解析request.getInpustream()。 使用fileUpload组件首先需要引入两个jar包: commons
本文向大家介绍ASP.NET实现的简单易用文件上传类,包括了ASP.NET实现的简单易用文件上传类的使用技巧和注意事项,需要的朋友参考一下 调用方法: 代码: