表单提交学习笔记(三)—利用Request.Files上传图片并预览
一、html页面如下
<div id="container">
<form id="myForm">
<p class="img_P"><img id="previewPic" name="previewPic" /></p>
<p><input type="file" id="imgUpload" name="imgUpload" /></p>
<p><button id="submitBtn" type="button" value="提交">提交</button></p>
</form>
</div>
二、实现上传图片预览功能
$(function () {
$('#imgUpload').on('change', function () {
var file = this.files[0];
if(this.files&&file)
{
var reader = new FileReader();
reader.onload = function (e) {
$('#previewPic').attr('src', e.target.result);
}
reader.readAsDataURL(file);
}
})
})
三、将图片传到后台(图片存储到固定文件夹下)
view页面的代码如下(页面需引用jquery和jquery.form.js两个文件):
$('#submitBtn').on('click', function () {
$('#myForm').ajaxSubmit({
type: 'post',
url: '/Form/ImgSubmit',
success: function (data) {
}
})
})
Controller代码
[HttpPost]
public ActionResult ImgSubmit()
{
if (Request.Files.Count>)
{
string extension = string.Empty;
HttpPostedFileBase file = Request.Files[] as HttpPostedFileBase;
if (file.FileName.Length > )
{
if (file.FileName.IndexOf('.') > -)
{
//原来也可以这用获取扩展名
//extension = file.FileName.Remove(0, file.FileName.LastIndexOf('.'));
string filePath = "/Upload/";
//创建路径
CreateFilePath(filePath);
if (file.FileName.ToString() != "")
{
string absoluteSavePath = System.Web.HttpContext.Current.Server.MapPath("~" + filePath);
var pathLast = Path.Combine(absoluteSavePath, file.FileName);
file.SaveAs(pathLast);
}
}
}
}
return Content("success");
} /// <summary>
/// 当存储的文件路径不存在时,创建文件路径
/// </summary>
/// <param name="savePath">保存路径(非绝对路径)</param>
public static void CreateFilePath(string savePath)
{
string Absolute_savePath = System.Web.HttpContext.Current.Server.MapPath("~" + savePath);
if (!Directory.Exists(Absolute_savePath))
Directory.CreateDirectory(Absolute_savePath);
}
注:在做的过程中,遇到了上传了图片,但是后台总是接收不到(Request.Files.Count总是为0),原因可能如下:
1、<form> 不能被嵌套(一个页面可以有多个form,但是不能被嵌套)
2、<form method="post" ,enctype="multipart/form-data" ></form>
3、<input type="file" id="imgUpload" name="imgUpload" /> 一定要有name属性
表单提交学习笔记(三)—利用Request.Files上传图片并预览的更多相关文章
- 表单提交学习笔记(二)—使用jquery.validate.js进行表单验证
一.官网下载地址:http://plugins.jquery.com/validate/ 二.用法 1.在页面上进行引用 <script src="~/scripts/jquery-1 ...
- 表单提交学习笔记(一)—利用jquery.form提交表单(后台.net MVC)
起因:一开始想用MVC本身的Form提交方法,但是提交完之后想进行一些提示,MVC就稍显不足了,最后用jquery插件---jquery.form.js,完美解决了问题~~ 使用方法 一.下载jque ...
- hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...
- 在表单提交之前做校验-利用jQuery的submit方法
点击表单中的提交按钮,默认就会提交表单,如果要在表单提交之前做一些校验,那么就可以用jQuery的submit方法. 也就是jQuery的submit的方法执行顺序,在表单的提交之前.用法如下: $( ...
- HTML表单部分学习笔记
第一部分: <!-- action :指定处理提交表单的格式 method :指定提交表单的http方法 enctype:指明用来把表单提交给服务器时的互联网媒体形式 --> <fo ...
- php Socket表单提交学习一下
<?php //发送请求指定的页面 $file = "1.php"; $filename = "gitignore.txt"; //文件名 $path = ...
- (转)ASP.NET MVC 第五个预览版和表单提交场景
转自:http://ourlife.blog.51cto.com/708821/296171 上个星期四,ASP.NET MVC开发团队发布了ASP.NET MVC框架的“第五个预览版”.你可以在这里 ...
- Struts2_day02--Action获取表单提交数据
Action获取表单提交数据 1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 ...
- Servlet实现表单提交(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(一)
1.MyEclipse|File|New|Project|Web Project 填写Project Name:exServlet,点选Java EE 6.0(配套Tomcat7.0) 2.代码 ...
随机推荐
- [技术博客] rails控制台调试路由
目录 rails console 获得路由 app.xxx_path 发送请求 获得响应 作者:庄廓然 rails console 在项目目录下执行rails console test 可以进入测试模 ...
- JavaScript初探系列(五)——this指向
一.涵义 this关键字是一个非常重要的语法点.毫不夸张地说,不理解它的含义,大部分开发任务都无法完成.this可以用在构造函数之中,表示实例对象.除此之外,this还可以用在别的场合.但不管是什么场 ...
- js - 常用工具集功能函数
Note [普通JSON数组插入指定位置并且合并] let arr = [{ a: 11 }, { a: 11 }, { a: 11 }, { a: 117 }, { a: 11 }, { a: 11 ...
- Alpine容器中运行go的二进制文件
Alpine容器中运行go的二进制文件 kuSorZ · 3月之前 · 214 次点击 · 预计阅读时间 1 分钟 · 2分钟之前 开始浏览 原文出处:https://cloud.tencent.co ...
- coroutine闲谈
coroutine居然能被吹到这种地步
- linux系统错误码大全
#define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #defi ...
- docker 运行 sqlserver
docker 运行 sqlserver docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=sa123456' -e 'MSSQL_PID=Deve ...
- 第一本docker书 学习笔记(一)
Docker的核心组件: Docker客户端和服务端 Docker镜像 Registry Docker容器 # Docker客户端和服务端 docker 是一个 C/S架构程序.客户端只需要向dock ...
- 《设计模式》读懂UML类图
一.类中的主要关系 继承.实现.组合.聚合.依赖.关联 二.UML类图 三.代码实现 public class H2O { } public class O2 { } public interface ...
- hive 引入第三方包(不重启)
Jar放入${HIVE_HOME}/auxlib目录 在${HIVE_HOME}中创建文件夹auxlib,然后将自定义jar文件放入该文件夹中. 此方法添加不需要重启Hive.而且比较便捷. 连接方式 ...