文件上传

转载 2013年12月05日 13:29:29
using System;
 using System.Data;
 using System.Configuration;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
 
 /**//// <summary>
 /// Cls_Upfile 的摘要说明
 /// </summary>
 ///
 namespace AllSheng
 ...{
 public class upload
 ...{
 变量#region 变量
 
 System.Web.HttpPostedFile postedFile;
 
 protected string localFileName;//原文件名(含扩展名)
 protected string localFileExtension;//原扩展名
 protected long localFileLength;//原文件大小
 protected string localFilePath;//原文件路径
 
 protected string saveFileName;//保存的文件名(含扩展名)
 protected string saveFileExtension;//保存的扩展名
 //protected long saveFileLength;//保存的文件大小
 protected string saveFilePath;//保存文件的服务器端的完整路径
 protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径
 
 
 private string path = null;
 private string fileType = null;
 private int sizes = 0;
 
 #endregion
 
 upload():初始化变量#region upload():初始化变量
 /**//// <summary>
 /// 初始化变量
 /// </summary>
 public upload()
 ...{
 path = @"uploadimages"; //上传路径
 fileType = "jpg|gif|bmp|jpeg|png|rar|doc";
 sizes = 200; //传文件的大小,默认200KB
 }
 #endregion
 
 设置传入的值:Path/Sizes/FileType#region 设置传入的值:Path/Sizes/FileType
 /**//// <summary>
 /// 设置上传路径,如:uploadimages
 /// </summary>
 public string Path
 ...{
 set
 ...{
 path = @"" + value + @"";
 }
 }
 
 /**//// <summary>
 /// 设置上传文件大小,单位为KB
 /// </summary>
 public int Sizes
 ...{
 set
 ...{
 sizes = value;
 }
 }
 
 /**//// <summary>
 /// 设置上传文件的类型,如:jpg|gif|bmp
 /// </summary>
 public string FileType
 ...{
 set
 ...{
 fileType = value;
 }
 }
 #endregion
 
 SaveAs()上传文件#region SaveAs()上传文件
 
 public string SaveAs(System.Web.HttpFileCollection files)
 ...{
 string myReturn = "";
 try
 ...{
 for (int iFile = 0; iFile < files.Count; iFile++)
 ...{
 postedFile = files[iFile];
 //获得文件的上传的路径
 localFilePath = postedFile.FileName;
 //判断上传文件路径是否为空
 if (localFilePath == null || localFilePath == "")
 ...{
 //message("您没有上传数据呀,是不是搞错了呀!");
 //break;
 
 continue;
 }
 else
 ...{
 判断文件大小#region 判断文件大小
 //获得上传文件的大小
 localFileLength = postedFile.ContentLength;
 //判断上传文件大小
 if (localFileLength >= sizes * 1024)
 ...{
 message("上传的图片不能大于" + sizes + "KB");
 break;
 }
 #endregion
 
 文件夹#region 文件夹
 //获取保存文件夹路径
 saveFileFolderPath = getSaveFileFolderPath(path);
 #endregion
 
 文件名#region 文件名
 //获得原文件名(含扩展名)
 localFileName = System.IO.Path.GetFileName(postedFile.FileName);
 
 saveFileName = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + 

"ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
 #endregion
 
 扩展名#region 扩展名
 //获取原文件扩展名
 localFileExtension = getFileExtension(localFileName);
 
 //如果为真允许上传,为假则不允许上传
 if (localFileExtension == "")
 ...{
 message("目前本系统支持的格式为:" + fileType);
 }
 //得到保存文件的扩展名,可根据需要更改扩展名
 saveFileExtension = localFileExtension;
 #endregion
 
 //得到保存文件的完整路径
 saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;
 postedFile.SaveAs(saveFilePath);
 myReturn = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[] ...{ '' }) + 

saveFileName + saveFileExtension;
 //以下对文章的内容进行一些加工
 
 System.Web.HttpContext.Current.Response.Write

("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + 

" "+" border=0 />'</SCRIPT>");
 
 }
 }
 }
 catch
 ...{
 //异常
 message("出现未知错误!");
 myReturn = null;
 }
 return myReturn;
 }
 #endregion
 
 getSaveFileFolderPath(...):获得保存的文件夹的物理路径#region getSaveFileFolderPath(...):获得保存的文件夹的物理路径
 /**//// <summary>
 /// 获得保存的文件夹的物理路径
 /// 返回保存的文件夹的物理路径,若为null则表示出错
 /// </summary>
 /// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
 /// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>
 private string getSaveFileFolderPath(string format)
 ...{
 string mySaveFolder = null;
 try
 ...{
 string folderPath = null;
 //以当前时间创建文件夹,
 //!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
 if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 || 

format.IndexOf("mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)
 ...{
 //以通用标准时间创建文件夹的名字
 folderPath = DateTime.UtcNow.ToString(format);
 mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";
 }
 else
 ...{
 mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + format;
 }
 System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(mySaveFolder);
 //判断文件夹否存在,不存在则创建
 if (!dir.Exists)
 ...{
 dir.Create();
 }
 }
 catch
 ...{
 message("获取保存路径出错");
 }
 return mySaveFolder;
 }
 
 #endregion
 
 getFileExtension(...):获取原文件的扩展名#region getFileExtension(...):获取原文件的扩展名
 /**//// <summary>
 /// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
 /// </summary>
 /// <param name="myFileName">原文件名</param>
 /// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>
 private string getFileExtension(string myFileName)
 ...{
 string myFileExtension = null;
 //获得文件扩展名
 myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
 //分解允许上传文件的格式
 if (myFileExtension != "")
 ...{myFileExtension = myFileExtension.ToLower();//转化为小写
 }
 string[] temp = fileType.Split('|');
 //设置上传的文件是否是允许的格式
 bool flag = false;
 //判断上传的文件是否是允许的格式
 foreach (string data in temp)
 ...{
 if (("." + data) == myFileExtension)
 ...{
 flag = true;
 break;
 }
 }
 if (!flag)
 ...{
 myFileExtension = "";//不能设置成null,因为null表明文件无后缀名;
 }
 return myFileExtension;
 }
 #endregion
 
 message(...):弹出消息框#region message(...):弹出消息框
 /**//// <summary>
 /// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
 /// </summary>
 /// <param name="msg">显示内容</param>
 /// <param name="url">跳转路径</param>
 private void message(string msg, string url)
 ...{
 System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + 

"'</script>");
 }
 
 /**//// <summary>
 /// 弹出消息框,显示内容(msg),无跳转
 /// </summary>
 /// <param name="msg">显示内容</param>
 private void message(string msg)
 ...{
 System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");
 }
 #endregion
 }
 }


Upfile.aspx.cs


 using System;
 using System.Data;
 using System.Configuration;
 using System.Collections;
 using System.Web;
 using System.Web.Security;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
 
 public partial class Inc_Upfile : System.Web.UI.Page
 ...{
 protected void Page_Load(object sender, EventArgs e)
 ...{
 //Cut By 梦溪苑。
 }
 protected void Button1_Click(object sender, EventArgs e)
 ...{
 AllSheng.upload UpFiles = new AllSheng.upload();
 
 
 //HttpPostedFile File = FileUpload1.PostedFile;
 // AllSheng.UploadObj.PhotoSave("/", FileUpload1);
 HttpFileCollection files = HttpContext.Current.Request.Files;
 UpFiles.Path = "../UpLoadfiles";
 String ReStr= UpFiles.SaveAs(files).ToString();
 Label1.Text = ReStr;
 UpFiles = null;
 }

文件上传模板

在开发中我们经常会写文件上传的接口,那么测试的时候每次都要自己写一次表弟验证写的接口是否正确,下面给出一个通用的模板: --> 要上传的文件1...
  • u014520745
  • u014520745
  • 2016年10月19日 13:46
  • 701

文件上传漏洞原理与实例测试

0x00 什么是文件上传 为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门。即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助...
  • wuqiongrj
  • wuqiongrj
  • 2016年07月22日 17:32
  • 3516

文件上传---文件上传

先上代码import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; impor...
  • u010715440
  • u010715440
  • 2014年11月18日 19:29
  • 204

struts2 实现文件上传原理

struts2 实现文件上传原理   通过struts2实现文件上传功能,主要jar包是不可少的包括: aopalliance.jar  --------------------------...
  • gazer_yuol
  • gazer_yuol
  • 2015年07月31日 00:22
  • 1445

Yii框架中文件上传

1:在数据库中建立一张表(upload,我的表是这样的: 2:使用Gii生成model层;
  • matiantian666
  • matiantian666
  • 2016年06月30日 10:12
  • 957

JSP 实现文件上传

JSP 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器。上传的文件可以是文本文件或图像文件或任何文档。 本章节我们使用 Servlet 来处理文件上传,使用到的文件有: u...
  • SUN_song520
  • SUN_song520
  • 2016年12月12日 13:59
  • 1650

PHP学习(7)-文件的上传

本文介绍如何把文件上传到服务器并保存。1.一个文件上传表单 Filename:
  • u012426959
  • u012426959
  • 2017年12月04日 09:15
  • 138

文件上传漏洞和修复方案

现代互联网的web应用程序中,文件上传是一种常见的要求,因为它有助于一高业务效率。在大型社交网络程序中都支持文件上传功能。在博客,论坛,电子银行网络,会给用户和企业员工有效的共享文件。允许上传图片,视...
  • pygain
  • pygain
  • 2016年10月22日 15:11
  • 4431

文件上传三要素

文件上传三要素:  1.表单提交方式: post (get方式提交有大小限制,post没有) 2.表单的enctype属性:必须设置为multipart/form-data.  3.表单必须有文件上传...
  • quanbugu
  • quanbugu
  • 2017年10月07日 08:57
  • 568

Android 文件上传的几种方式

这两天和新来的同事做一个项目,用到了文件上传,在这里记录下历程Android文件上传有各种各样的Http框架,我也就简单说说我常用的吧,LiteHttp,OkHttp的封装还没做完全,有时间会补上,这...
  • qq_15700209
  • qq_15700209
  • 2017年06月15日 09:47
  • 1314
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件上传
举报原因:
原因补充:

(最多只允许输入30个字)