<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd"> //创建文本上传域 //表单
其中与service交互用上传图片的 一般处理程序文件,源码如下: /App_Ashx/Upload.ashx
using System;
using System.Collections.Generic; using System.Collections; using System.IO; using System.Web; using System.Globalization; using LitJson; namespace HZYT.ExtJs.WebSite.App_Ashx
{ /// <summary> /// Upload 的摘要说明 /// </summary> public class Upload : IHttpHandler { //文件保存目录路径 private string savePath = App_Code.Constant.UPLOADIMAGEPATH; //文件保存目录URL private string saveUrl = App_Code.Constant.UPLOADIMAGEPATH; //定义允许上传的文件扩展名 private String fileTypes = "gif,jpg,jpeg,png,bmp"; //最大文件大小 private int maxSize = 1000000; private HttpContext context;
public void ProcessRequest(HttpContext context)
{ this.context = context; HttpPostedFile imgFile = context.Request.Files["imgFile"];
if (imgFile == null) { showError("请选择文件。"); } String dirPath = context.Server.MapPath(savePath);
if (!Directory.Exists(dirPath)) { showError("上传目录不存在。"); } String fileName = imgFile.FileName;
String fileExt = Path.GetExtension(fileName).ToLower(); ArrayList fileTypeList = ArrayList.Adapter(fileTypes.Split(',')); if (imgFile.InputStream == null || imgFile.InputStream.Length > maxSize)
{ showError("上传文件大小超过限制。"); } if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1)
{ showError("上传文件扩展名是不允许的扩展名。"); } String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
String filePath = dirPath + newFileName; imgFile.SaveAs(filePath);
String fileUrl = saveUrl + newFileName;
Hashtable hash = new Hashtable();
hash["error"] = 0; hash["url"] = fileUrl; context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8"); context.Response.Write(JsonMapper.ToJson(hash)); context.Response.End(); } private void showError(string message)
{ Hashtable hash = new Hashtable(); hash["error"] = 1; hash["message"] = message; context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8"); context.Response.Write(JsonMapper.ToJson(hash)); context.Response.End(); } public bool IsReusable
{ get { return true; } } } } 2.效果如下:
|
|