上传文件应该是很常见必不可少的一个操作,网上也有很多提供的上传控件。今天遇到一个问题:input 控件 file 无法进行异步无刷新上传。真真的感到别扭。所以就尝试这去处理了一下。主要分三个部分:上传类的封装,html input 控件 file 处理和后台 controller 的调用。
此类主要两个功能,一些简单的筛选和文件重命名操作。
文件的筛选包括:
文件类型,文件大小
重命名:
其中默认为不进行重命名操作,其中重命名默认为时间字符串 DateTime.Now.ToString("yyyyMMddHHmmss")
文件地址:
可进行自定义。相对地址与绝对地址都可以。
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- using System.web;
- namespace CommonHelper {
- public class UploadFile: System.Web.UI.Page {
- public UploadFile() {}
- //错误信息
- public string msg {
- get;
- set;
- }
- public string FullName {
- get;
- set;
- }
- //文件名称
- public string FileName {
- get;
- set;
- }
- /// /// 文件上传
- /// by wyl 20161019
- /// /// 文件上传地址/// 文件规定大小/// 文件类型/// file上传的文件/// 是否重名名/// public bool upload_file(string filepath, int size, string[] filetype, bool isrename = false)
- {
- filepath = Server.MapPath(filepath);
- //文件夹不存在就创建
- if (!Directory.Exists(filepath)) Directory.CreateDirectory(filepath);
- if (HttpContext.Current.Request.Files.Count == 0) {
- msg = "文件上传失败";
- return false;
- }
- msg = "上传成功";
- var file = HttpContext.Current.Request.Files[0];
- if (file.ContentLength == 0) {
- msg = "文件大小为0";
- return false;
- }
- if (file.ContentLength > size * 1024) {
- msg = "文件超出指定大小";
- return false;
- }
- var filex = HttpContext.Current.Request.Files[0];
- string fileExt = Path.GetExtension(filex.FileName).ToLower();
- if (filetype.Count(a = >a == fileExt) < 1) {
- msg = "文件类型不支持";
- return false;
- }
- if (isrename) FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExt;
- FileName = filex.FileName;
- FullName = Path.Combine(filepath, FileName);
- file.SaveAs(FullName);
- return true;
- }
- }
- }
上传文件的方法在这也没有什么过得的介绍。看代码注释应该都好理解。
- <div class="content">
- <form method="post" target="hidden_frame" enctype="multipart/form-data"
- action="/CustomFrom/FormDesign/FileUpload" name="form">
- <input class="m input" name="fileName" type="file">
- <input class="btn file-input" value="提交..." name="F2" type="submit">
- <iframe id="hidden_frame" name="F2" style="display: none">
- <html>
- <head>
- </head>
- <body>
- </body
来源: http://www.cnblogs.com/kmonkeywyl/p/5992646.html