说明(2017-10-8 23:03:43):

1. 后面的内容都是一些杂七杂八的,零零碎碎的,之前都直接略过了,不过其实还是挺重要的,这次重新学习要认认真真敲一遍。

2. 明天中午9号要回北京了,今晚跟介绍的妹子聊了一个多小时,哎!

3. 下集预告,给图片加水印!

index.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form action="index.ashx" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="text" name="txt" />
<input type="submit" value="上传" />
</form>
</body>
</html>

index.ashx

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO; namespace _02_图片上传
{
/// <summary>
/// index 的摘要说明
/// </summary>
public class index : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
//接收文件数据
HttpPostedFile file = context.Request.Files["file"];
if (file == null)
{
context.Response.Write("未上传图片!");
}
else
{ //string fileName = Path.GetFileName(file.FileName);
//加上全局唯一标识,防止图片重名
Guid g = Guid.NewGuid();
string fileName = Guid.NewGuid().ToString();
//获取扩展名
string fileExt = Path.GetExtension(file.FileName);
//相对路径
string filePath = "image/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
//绝对路径
//创建文件夹,以年月日命名
string fileRealPath = context.Request.MapPath("image/") + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
Directory.CreateDirectory(fileRealPath);
//判断文件类型,防止上传病毒
if (fileExt == ".jpg")
{
file.SaveAs(fileRealPath + fileName + fileExt);
//这个地方的图片路径需要是相对路径,不然不显示
context.Response.Write("<html><head></head><body><h1>哈哈哈哈</h1><img src='" + filePath + fileName + fileExt + "'/></body></html>");
} }
} public bool IsReusable
{
get
{
return false;
}
}
}
}

最新文章

  1. html与css面试结合工作的总结难点
  2. 如何让nodejs同步操作
  3. DFX 安全测试-- 告诉你什么是XSS、sql注入?POST和GET的区别....
  4. OAuth2授权页面state参数的设计
  5. CAS 单点登录流程
  6. [phonegap]安装phonegap
  7. protoc的protoc-gen-grpc-java插件
  8. Word分栏
  9. sed正则表达式
  10. 【SICP读书笔记(三)】练习2.18 --- 表序列的reverse方法
  11. iOS开发——判断是否第一次启动
  12. PHP封装数据库连接
  13. openstack基础:网络
  14. idc市场
  15. 二级VB备考中
  16. chrome浏览器使用chrome://inspect调试app 网页,打开空白的问题
  17. nginx+php-fpm 报“File not found.”
  18. gulp生成发布包脚本
  19. [转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)
  20. Socket-Vs-WebSocket-TestTool

热门文章

  1. C语言stat()函数:获取文件状态
  2. Rplidar学习(一)—— 开发套件初识
  3. Python学习笔记(四)——编码和字符串
  4. xcode9报错 Safe Area Layout Guide before iOS9.0
  5. [aaronyang] nodejs学习-mongodb[1]
  6. MySQL-InnoDB Compact 行记录格式
  7. mysql - tmp_table_size &amp; max_heap_table_size
  8. 如何提升RDS响应速度
  9. linux中chkconfig 启动程序顺序介绍
  10. 数据库事务隔离级别+Spring 声明性事务隔离级别