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 != ".webp" & suffix != ".webp") //{ // 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; } } }}