前言
上傳文件應(yīng)該是很常見必不可少的一個(gè)操作,網(wǎng)上也有很多提供的上傳控件。今天遇到一個(gè)問題:input控件file無法進(jìn)行異步無刷新上傳。真真的感到別扭。所以就嘗試這去處理了一下。主要分三個(gè)部分:上傳類的封裝,html input控件file處理和后臺(tái)controller的調(diào)用。
上傳封裝類:
此類主要兩個(gè)功能,一些簡單的篩選和文件重命名操作。
文件的篩選包括:
文件類型,文件大小
重命名:
其中默認(rèn)為不進(jìn)行重命名操作,其中重命名默認(rèn)為時(shí)間字符串DateTime.Now.ToString("yyyyMMddHHmmss")
文件地址:
可進(jìn)行自定義。相對(duì)地址與絕對(duì)地址都可以。
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() { } //錯(cuò)誤信息 public string msg { get; set; } public string FullName { get; set; } //文件名稱 public string FileName { get; set; } /// <summary> /// 文件上傳 /// by wyl 20161019 /// </summary> /// <param name="filepath">文件上傳地址</param> /// <param name="size">文件規(guī)定大小</param> /// <param name="filetype">文件類型</param> /// <param name="files">file上傳的文件</param> /// <param name="isrename">是否重名名</param> /// <returns></returns> public bool upload_file(string filepath, int size, string[] filetype, bool isrename = false) { filepath = Server.MapPath(filepath); //文件夾不存在就創(chuàng)建 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; } }}
上傳文件的方法在這也沒有什么過得的介紹。看代碼注釋應(yīng)該都好理解。
頁面html
<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></html></iframe></form></div>
新聞熱點(diǎn)
疑難解答
圖片精選