c# ASP.NET MVC easyui-filebox 图片上传和显示
原文:https://www.cnblogs.com/huatao/p/4727398.html
https://www.cnblogs.com/weiweithe/p/4363458.html
表单multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。
一、前端代码
@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
<div>文件上传:<input type="file" name="myFile"/></div>
<input type="submit" value="提交"/>
}
//类似的使用easyui
@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
<div class="div-group">
<input id="txtSignPhoto" class="easyui-filebox" name="SignPhoto" style="width: 90%"
data-options="label:'签字文件:',required:true,buttonText:'选择文件',prompt:'仅支持图片、xls、doc和docx格式',onChange:function(){checkFile(2)}"/>
</div>
}
//编写JS方法checkFile()验证文件格式
function checkFile(a) //检查文件
{
var fileTypes = ['.jpg', '.jpeg', '.bmp', '.png', '.gif', 'psd', '.rar', '.zip', '.doc', '.docx', 'wps', '.xls', '.xlsx', '.txt', '.pdf'];
var filePath;
if (a === 1)
filePath = window.$('#txtSignPhoto').textbox('getValue');
if (filePath !== '') {
var flag = false;
var fileType = filePath.substring(filePath.lastIndexOf("."));
if (fileTypes.length > 0) {
for (var i = 0; i < fileTypes.length; i++) {
if (fileTypes[i] === fileType) {
flag = true;
break;
}
}
}
if (!flag) {
alert('不接受' + fileType + '文件类型上传');
if (a === 1)
window.$('#UploadFile').textbox('setValue', '');
return;
}
}
}
以及表单的2种写法:
二、后台代码

/// <summary>
/// 上传文件
/// </summary>
/// <returns>上传文件结果信息</returns>
[HttpPost]
public ActionResult UploadFile()
{
HttpPostedFileBase file = Request.Files["myFile"];
//接收文本 if (file != null)
{
try
{
var filename = Path.Combine(Request.MapPath("~/Upload/Image/"), file.FileName);
file.SaveAs(filename);
return Content("上传成功");
}
catch (Exception ex)
{
return Content(string.Format("上传文件出现异常:{0}", ex.Message));
} }
else
{
return Content("没有文件需要上传!");
}
}

三、根据地址显示图片
方法1:
前台:
<img src="/controller/action"/>
或者<img alt="Chart" id="change" src="@Url.Action("action", "Register", new { ViewBag.id ,v = DateTime.Now.ToString("yyyyMMddhhmmss")})" />
后台:
public ActionResult Action()
{
string path = "读取数据库里面的图片路径";
byte[] img = System.IO.File.ReadAllBytes(path);//将图片读入字节数组
return new FileContentResult(img, "image/jpeg");//返回图片
}
方法2:
<img alt="你好" id="change1" style='width:100px; height:80px' />
//js赋值,文件存放在更目录下
window.$("#change1").attr("src", "/Upload/Image" + pathname);
//设置为非必需填写
$('#change1).filebox({ required: false }); //鼠标悬浮时放大图片并水平居中
<style type="text/css">
img:hover {
transform: scale(22, 15);
vertical-align: middle;
display: inline;
position: absolute;
top: 50%;
left: 50%;
}
</style>
c# ASP.NET MVC easyui-filebox 图片上传和显示的更多相关文章
- [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...
- ruby on rails爬坑(三):图片上传及显示
一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...
- 图片上传即时显示javascript代码
这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...
- 图片上传并显示(兼容ie),图片大小判断
图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...
- ASP.NET MVC下使用文件上传
这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3. 根目录下添加新 ...
- 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achi ...
- .net mvc + layui做图片上传(二)—— 使用流上传和下载图片
摘要:上篇文章写到一种上传图片的方法,其中提到那种方法的局限性,就是上传的文件只能保存在本项目目录下,在其他目录中访问不到该文件.这与浏览器的安全性机制有关,浏览器不允许用户用任意的路径访问服务器上的 ...
- [Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件 This project attempts to ach ...
随机推荐
- React Native 之组件的定义
App.js 也可以认为是一个组件,那么此文件中能定义多个组件吗? 方式一 import Hello from './Hello' export default class App extends C ...
- Linux的学习:
查看端口: netstat -anop | grep 80 netstat -ntlp 先看看不带n的 再看看带n的 我们发现在local address 即主机地址这一栏中,如果没有带n选项,会将套 ...
- mysql FOREIGN KEY约束 语法
mysql FOREIGN KEY约束 语法 作用:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. DD马达 说明:FOREIGN KEY 约束用于预防破坏表之间连接的 ...
- html显示高亮c++
配色与Devc++ 的classic plus 相同 输入文件名即可,输出在out.htm中 #include<bits/stdc++.h> #include<windows.h&g ...
- Java数据结构之单链表
这篇文章主要讲解了通过java实现单链表的操作,一般我们开始学习链表的时候,都是使用C语言,C语言中我们可以通过结构体来定义节点,但是在Java中,我们没有结构体,我们使用的是通过类来定义我们所需要的 ...
- 在centos上配置环境
1. 安装wget [root@localhost ~]# yum -y install wget 2. 在oneinstack官网配置安装环境 wget http://mirrors.lin ...
- hashcode native
hashcode Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值. 在设计hashCode方法和equal ...
- Mapreduce报错:Split metadata size exceeded 10000000
报错信息: Failure Info:Job initialization failed: java.io.IOException: Split metadata size exceeded 1000 ...
- netflow-module
https://www.elastic.co/guide/en/logstash/current/netflow-module.html
- react 类样式的一些使用方法
在 css类不想使用穿透的状态,可以再webpack配置 modules:true,它位于css-loader下,此外调用css的类时可能会自动生成一个hash值,这时候如果想显示本来的名字,可以打 ...