用jQuery实现文件上传的方法
1、利用FormData实现文件上传
<input type="file" id="avatar" name="avatar"> <button type="button">保存</button>
('button').click(function(){ var files = $('#avatar').prop('files'); //多个 //或者 var files = $('#avatar')[0].files[0] //单个 var data = new FormData(); data.append('avatar', files[0]); $.ajax({ url: '/api/upload', type: 'POST', data: data, cache: false, processData: false, contentType: false }); });
2、一般处理程序上传文件
using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Web; using Newtonsoft.Json; namespace CCOA.App.common.api { /// <summary> /// CommUploadFile 的摘要说明 /// </summary> public class CommUploadFile : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { HttpPostedFile file = context.Request.Files["file1"]; //是否上传文件 if (file.ContentLength <= 0) //文件大小 { //请选择要上传的文件 context.Response.Write(""); return; } //上传文件大小检测 if (file.ContentLength > 1024 * 1024*5) { //上传文件大小不能超过5M context.Response.Write(""); return; } //上传文件后缀名检测 string filename = file.FileName; //文件绝对地址 string suffix = Path.GetExtension(filename); //截取后缀 //if (suffix != ".jpg" & suffix != ".jpeg") //{ // context.Response.Write("只允许上传jpg文件"); // return; //} #region 保存文件 //重命名:GUID(全球唯一标识符)推荐!!! filename = string.Format("{0}{1}", Guid.NewGuid().ToString("N"), suffix); //创建目录 string dirFullPath = context.Server.MapPath("~/UploadFile/"); //如果文件夹不存在,则先创建文件夹 if (!Directory.Exists(dirFullPath)) { Directory.CreateDirectory(dirFullPath); } //将两个字符组合成一个路径 string fileFullPath = Path.Combine(dirFullPath, filename); //保存文件 file.SaveAs(fileFullPath); string clientFilePath = "/CCOA/UploadFile/" + filename; context.Response.Write(clientFilePath); } catch (Exception ex) { context.Response.Write(""); } #endregion } public bool IsReusable { get { return false; } } } }
分类:
.net / asp.net
, 前端 / jquery
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)