asp.net图片上传
来源:互联网 发布:五十知天命六十耳顺 编辑:程序博客网 时间:2024/05/17 04:32
前言
asp.net:一般处理程序.ashx效率比较高效,WebForm(aspx)比较消耗资源,MVC(效率刚好介于两者之间)(用在验证码,上传图片等)
前端代码
第一个input标签忘记写了name属性,结果找了老半天没找出来,吐血。。。导致Request.Files/Request.File[0]一直报错,
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /></head><body> <form action="ProUpload.ashx" method="post" enctype="multipart/form-data"> <input type="file" name="txtFile"/>//name属性不要忘记写,数据是通过name放在发送报文中,name不可缺少。 <input type="text" name="txtUserName" value="" /> <input type="submit" value="提交" /> </form></body></html>
服务端ProUpload.ashx
思路:
- 先找到文件名和扩展名,接着根据扩展名判断是否是.jpg格式,这其实有个问题,就是别人可以通过修改扩展名来上传文件,也有可能将病毒上传到服务器;
- 接着对为避免出现重复命名的情况而进行Guid方法就行唯一的命名,并且根据不同的天数进行划分文件夹;
- 接着上传文件到服务器;
- 在浏览器中进行显示。
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace Uploadfile._2017_9_02{ /// <summary> /// ProUpload 的摘要说明 /// </summary> public class ProUpload : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; HttpPostedFile file = context.Request.Files[0];//获取上传的文件. if (file.ContentLength > 0) { //对上传的文件类型进行校验。 string fileName = Path.GetFileName(file.FileName);//获取上传文件的名称包含扩展名。 string fileExt = Path.GetExtension(fileName);//获取用户上传的文件扩展名。 if (fileExt == ".jpg") { //1.对上传文件进行重命名? string newfileName = Guid.NewGuid().ToString(); //2:将上传的文件放在不同的目录下面? string dir = "/ImageUpload/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/"; //创建文件夹 if (!Directory.Exists(context.Request.MapPath(dir))) { Directory.CreateDirectory(context.Request.MapPath(dir)); } string fullDir = dir + newfileName + fileExt;//文件存放的完整路径。 file.SaveAs(context.Request.MapPath(fullDir)); // file.SaveAs(context.Request.MapPath("/ImageUpload/"+fileName));//完成文件的保存。 context.Response.Write("<html><body><img src='" + fullDir + "'/></body></html>"); } else { context.Response.Write("只能上传图片文件"); } } else { context.Response.Write("请选择上传文件"); } } public bool IsReusable { get { return false; } } }}
扩展
通过Ajax将图片具体位置的显示?
将图片的路径保存在数据库中?
是否加密?
总结
如果一时找不到学习项目开发的时候,那就从模仿开始,先学习别人开发的经验以及别人开发是的一些小细节,慢慢去模仿,慢慢地到自己能够写出代码,学习应该是站在巨人的肩膀上学习,而不是另起炉灶,这样才能事半功倍,加油!!一步步来,积累开发的知识。不积小流,无以成江海。
阅读全文
0 0
- asp.net上传图片
- asp.net上传图片
- asp.net上传图片
- ASP.NET图片上传
- asp.net上传图片
- asp.net上传图片
- asp.net 图片上传
- asp.net 上传图片
- asp.net上传图片
- ASP.NET图片上传
- asp.net 上传图片
- ASP.NET上传图片
- asp.net 图片上传
- Asp.Net上传图片
- ASP.NET 上传图片
- asp.net图片上传
- ASP.NET上传图片类
- asp.net上传图片汇总
- Java面试复习(四)
- poj3278 Catch That Cow
- js中的Date对象
- Linux初窥:软件包管理之(yum与源码包安装)
- zhihu-spider开源项目使用技术详
- asp.net图片上传
- Android 穿过点画平滑曲线
- codevs1214 线段覆盖(贪心,区间型)
- palindrome-number
- CentOS 7的安装
- AtCoder Beginner Contest 072
- eclipse个人常用快捷键整理1.0
- 书单
- Java JSON解析工具类(支持泛型)