using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Configuration;
using System.Web.Configuration;
using System.Collections;
using System.Text.RegularExpressions; namespace Visaok.ul.UserCenter.dialogs.attachment
{
public partial class upfile : System.Web.UI.Page
{
public string s; private string state = "SUCCESS"; protected void Page_Load(object sender, EventArgs e)
{ } protected void Button1_Click(object sender, EventArgs e)
{ string[] filetype = { ".rar", ".doc", ".docx", ".zip", ".pdf", ".txt", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".mov", ".wmv", ".mp4", ".webm",".jpg" }; //文件允许格式
int size = ; //文件大小限制,单位MB,同时在web.config里配置环境默认为100MB string uploadpath = Request.MapPath("~/"); //取得网站根目录路径 //格式验证
if (checkType(filetype))
{
//不允许的文件类型
state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b";
}
//大小验证
if (checkSize(size))
{
//文件大小超出网站限制
state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236";
} //保存图片
if (state == "SUCCESS")
{
//目录创建
string Path = DateTime.Now.ToString("yyMMddHHmmss") + (new Random().Next(, ).ToString(""));
createFolder(uploadpath + "Peerfile\\"+ Path); if (string.IsNullOrEmpty(FileUpload1.FileName)) { Response.Write("未选择文件"); return; }
FileUpload1.SaveAs(uploadpath + "Peerfile\\" + Path+"\\" + FileUpload1.FileName); //存储文件到文件夹
FileInfo pathinfo = new FileInfo(uploadpath + "Peerfile\\" + Path + "\\" + FileUpload1.FileName.ToString());
string pathtwo = WebConfigurationManager.AppSettings["path"];
string RootDirectory = WebConfigurationManager.AppSettings["RootDirectory"];
s = "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"" + pathtwo + Path + "/" + pathinfo.Name + "\"><img style=\"display:inline-block;\" src=\"" + RootDirectory + "Peer/PeerCenter/dialogs/attachment/images/icon_rar.gif\">" + pathinfo.Name + "</a></b>&nbsp;&nbsp;&nbsp;&nbsp;";
div1.InnerHtml = pathinfo.Name + "上传成功";
}
else
{
div1.InnerHtml = "上传的格式不允许";
}
} /**
* 获取文件信息
* @param context
* @param string
* @return string
*/ public string getOtherInfo(HttpContext cxt, string field)
{
string info = null;
if (cxt.Request.Form[field] != null && !String.IsNullOrEmpty(cxt.Request.Form[field]))
{
info = field == "fileName" ? cxt.Request.Form[field].Split(',')[] : cxt.Request.Form[field];
}
return info;
} /**
* 重命名文件
* @return string
*/ private string reName()
{
return System.Guid.NewGuid() + getFileExt();
} /**
* 文件类型检测
* @return bool
*/ private bool checkType(string[] filetype)
{
string currentType = getFileExt();
return Array.IndexOf(filetype, currentType) == -;
} /**
* 文件大小检测
* @param int
* @return bool
*/ private bool checkSize(int size)
{
//ContentLength
return FileUpload1.PostedFile.ContentLength>= (size * * );
} /**
* 获取文件扩展名
* @return string
*/ private string getFileExt()
{
string[] temp = FileUpload1.FileName.Split('.');
return "." + temp[temp.Length - ].ToLower();
} /**
* 按照日期自动创建存储文件夹
*/ private void createFolder(string fintPath)
{
if (!Directory.Exists(fintPath))
{
Directory.CreateDirectory(fintPath);
}
} /**
* 删除存储文件夹
* @param string
*/ public void deleteFolder(string path)
{
//if (Directory.Exists(path))
//{
// Directory.Delete(path, true);
//}
} public static string Format(string format, string filename)
{
if (String.IsNullOrWhiteSpace(format))
{
format = "{filename}{rand:6}";
}
string ext = Path.GetExtension(filename);
filename = Path.GetFileNameWithoutExtension(filename);
format = format.Replace("{filename}", filename);
format = new Regex(@"\{rand(\:?)(\d+)\}", RegexOptions.Compiled).Replace(format,
new MatchEvaluator(delegate(Match match)
{
var digit = ;
if (match.Groups.Count >)
{
digit =Convert.ToInt32(match.Groups[].Value);
}
var rand = new Random();
return rand.Next((int)Math.Pow(,digit),(int)Math.Pow(,digit +)).ToString();
}));
format = format.Replace("{time}", DateTime.Now.Ticks.ToString());
format = format.Replace("{yyyy}", DateTime.Now.Year.ToString());
format = format.Replace("{yy}", (DateTime.Now.Year % ).ToString("D2"));
format = format.Replace("{mm}", DateTime.Now.Month.ToString("D2"));
format = format.Replace("{dd}", DateTime.Now.Day.ToString("D2"));
format = format.Replace("{hh}", DateTime.Now.Hour.ToString("D2"));
format = format.Replace("{ii}", DateTime.Now.Minute.ToString("D2"));
format = format.Replace("{ss}", DateTime.Now.Second.ToString("D2"));
var invalidPattern = new Regex(@"[\\\/\:\*\?\042\<\>\|]");
format = invalidPattern.Replace(format, "");
return format + ext;
}
} }

.NET 图片上传接收类的更多相关文章

  1. ASP.NET 图片上传工具类 upload image简单好用功能齐全

    使用方法: UploadImage ui = new UploadImage(); /***可选参数***/ ui.SetWordWater = "哈哈";//文字水印 // ui ...

  2. PHP 图片上传工具类(支持多文件上传)

    ====================ImageUploadTool======================== <?php class ImageUploadTool { private ...

  3. 基于WebImage的图片上传工具类

    支持缩略图和水印. using System; using System.IO; using System.Linq; using System.Web; using System.Web.Helpe ...

  4. ashx图片上传接收

    发送数据流方法 /// <summary> /// PostBinaryData /// </summary> /// <param name="url&quo ...

  5. JSP图片上传 公共工具类

    需要jsmartcom_zh_CN.jar支持. 下载地址: http://files.cnblogs.com/simpledev/jsmartcom_zh_CN.rar <%@page imp ...

  6. PHP图片上传类

    前言 在php开发中,必不可少要用到文件上传,整理封装了一个图片上传的类也很有必要. 图片上传的流程图 一.控制器调用 public function upload_file() { if (IS_P ...

  7. android批量文件上传(android批量图片上传)

    项目中多处用到文件批量上传功能,今天正好解决了此问题,在此写出来,以便日后借鉴. 首先,以下架构下的批量文件上传可能会失败或者不会成功:   1.android客户端+springMVC服务端:服务端 ...

  8. thinkjs升级到3.0后的图片上传

    似乎当thinkjs升级到3.0后,才接手了一个项目.只是在实际运用过程中,还是发现了与2.2的些许差别——今天先分享关于图片上传的一些问题. 1.上传文件,我们选择了jQuery的插件:http:/ ...

  9. spring boot图片上传至远程服务器并返回新的图片路径

    界面上传图片时考虑到可能会有用户的图片名称一致,使用UUID来对图片名称进行重新生成. //UUIDUtils public class UUIDUtils { public static Strin ...

随机推荐

  1. word 2007,以不同颜色突出显示文本的快捷键,highlight命令

    命令:highlight 默认快捷键:Ctrl+Alt+H   查询或自定义快捷键的方法: 打开一个文档→单击左上角的office图标→word选项 左边的列表中选择自定义→在右边的窗口中,底部有个“ ...

  2. 如何让RESTful支持DEL和PUT

    RESTful风格里面,@ModelAttribute是一个语义复杂的对象,其中一个就是在所有的被@Controller修饰的方法之前执行: @RequestParam:是指url中“?”之后的que ...

  3. CF 986A Fair——多源bfs

    题目:http://codeforces.com/contest/986/problem/A 如果从每个村庄开始bfs找货物,会超时. 发现k较小.那就从货物开始bfs,给村庄赋上dis[ 该货物 ] ...

  4. Python 修改ha配置文件

    任务要求: 1.用户输入字符串 {"backend": "test.oldboy.org","record":{"server&q ...

  5. java文本文件读写

    java的IO系统中读写文件使用的是Reader和Writer两个抽象类,Reader中的read()和close()方法是抽象方法,Writer中的write().flush()和close()方法 ...

  6. 上传文件csv 导入功能

    HTML代码: <script> function uploadCsv() { $('#chooseCsvFile').click(); } function doUploadCsv() ...

  7. IDEA 设置导出

    见附件 https://files.cnblogs.com/files/chuancheng/settings.7z

  8. spring中JavaConfig相关的注解

    在spring3.0中增加配置spring beans的新方式JavaConfig,可以替换spring的applicataion.xml配置.也即@Configuration对等<beans/ ...

  9. rails自定义出错页面

    一.出错类型 Exception ActionController::UnknownController, ActiveRecord::RecordNotFound ActionController: ...

  10. Python类(八)-类的起源

    首先用type()看一下类和实例化对象的类型 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(obj ...