asp.net 4.Redirect重定向和文件图片上传
1.Response.Redirect
如图所示:
1.用户点击修改按钮, 浏览器向服务器发送一个POST请求 http://localhost:6543/UpdateUser.ashx
2.服务器的IIS收到请求后,交由aspnet_isapi.dll 调用.netframework 执行 UpdateUser.ashx 中的代码
3.当.netframework执行UpdateUser.ashx中的代码执行到 context.Response.Redirect("UserInfoList.ashx"); 时,服务器会向上处理,服务器会给浏览器一个响应,在响应报文中会加上一个302的响应状态码(跳转),在响应体中 参数 Location:/UserInfoList.ashx,如下图:
4.浏览器收到302,就知道接下来要跳转了(浏览器重新向服务器发送请求,请求有Location这个属性所指定的页面)
***图片,css文件,js文件 会放在浏览器缓存中。
2.上传图片文件
表单属性:enctype
1.如果表单不需要上传文件就不用加enctype
2.enctype="multipart/form-data":如果要上传文件必须加上该属性,指定相应的编码。只有这样用户选择的文件数据(文件流)才会放在请求报文中,发送给服务器。表单中的其它表单元素(文本框等),也会发送到服务端,但是格式也变了,但是在服务端还是按照以前的方式进行接收
FileUp.html:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<!--enctype="multipart/form-data":如果要上传文件必须加上该属性,指定相应的编码。只有这样用户选择的文件数据(文件流)才会放在请求报文中,发送给服务器。表单中的其它表单元素(文本框等),也会发送到服务端,但是格式也变了,但是在服务端还是按照以前的方式进行接收-->
<!--如果表单不需要上传文件就不用加enctype--->
<form method="post" action="ProcessFileUp.ashx" enctype="multipart/form-data">
<input type="file" name="fileUp" />
<input type="text" name="txtName" /> <input type="submit" value="上传" /> </form>
</body>
</html>
ProcessFileUp.ashx(服务器端处理上传图片文件):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO; namespace CZBK.ItcastProject.WebApp.Upload_demo
{
/// <summary>
/// ProcessFileUp 的摘要说明
/// </summary>
public class ProcessFileUp : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
HttpPostedFile file = context.Request.Files[];//获取上传的文件.
if (file.ContentLength > )
{
//对上传的文件类型进行校验。
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;
}
}
}
}
asp.net 4.Redirect重定向和文件图片上传的更多相关文章
- ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...
- WebUploader文件图片上传插件的使用
最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUp ...
- Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单
如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novate 通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retr ...
- [iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]
简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...
- WebApi2 文件图片上传下载
Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方 ...
- 关于富文本编辑器—UEditor(java版)的使用,以及如何将UEditor的文件/图片上传路径改成绝对路径
突然发现好久没写博客了,感觉变懒了,是要让自己养成经常写文章的习惯才行.既可以分享自己的所学,和所想,和大家一起讨论,发现自己的不足的问题. 大家可能经常会用到富文本编辑器,今天我要说的是UEdito ...
- Asp.net中FileUpload控件实现图片上传并带预览显示
单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理: 采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的 ...
- commons-fileload图片文件上传工具 , servlet文件图片上传案列
本案列是java maven工程小项目,提供个大家学习! 1.在pom.xml文件中导入依赖: <!--文件上传依赖--><dependency> <groupId&g ...
- 基于ASP.Net +easyUI框架上传图片,实现图片上传,提交表单
<body> <link href="../../Easyui/themes/easyui.css" rel="stylesheet" typ ...
随机推荐
- js eval 动态内容生成
js比较简单易上手,适合用于动态内容生成.或规则判断,比如给出json格式的数据,动态执行js脚本得到预期的结果等. 接口文档:包括jsConfig.jsEval两个接口 jsConfig使用get的 ...
- 火车购票问题(16年ccf)
火车购票问题(16年ccf) 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一 ...
- 2159 -- Ancient Cipher
Ancient Cipher Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 36074 Accepted: 11765 ...
- [java]将秒数转化为“天时分秒”的格式(转贴+修改)
public class Time { // format seconds to day hour minute seconds style // Exmplae 5000s will be form ...
- [面试] Java高级软件工程师面试考纲(转)
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- Java:基础知识点
1. 面向对象的特征 (1)封装:把过程和数据包围起来,对数据的访问只能通过已定义的界面.即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象:(2)继承:是一种 ...
- 使用IEDriverServer.exe驱动IE,实现自动化测试
1. 下载IEDriverServer: https://www.nuget.org/packages?q=IEDriver 2. 解压缩得到IEDriverServer.exe和IEDriverSe ...
- Spring Boot AOP Demo
什么是AOP? AOP面向切面,切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性. 实现策略JAVA SE动态代理 ...
- openstack核心组件--cinder存储服务(6)
一.cinder 介绍: 理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系 ...
- 还原Master数据库后SQLSERVER的服务无法开启
如果还原Master数据库后,SQLSERVER的服务无法开启,请注意是否因为其他的系统数据库在Master备份中记录的路径与现在的路径不一致导致的. 如果是,可以在cmd中执行“NET START ...