原文: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种写法:
<form method="post" action="~/Areas/seal/Views/register/Index.cshtml" enctype="multipart/form-data">
    <input type="text" name="desc">
    <input type="file" name="pic">
</form>

二、后台代码

        /// <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 图片上传和显示的更多相关文章

  1. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  2. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  3. ruby on rails爬坑(三):图片上传及显示

    一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...

  4. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  5. 图片上传即时显示javascript代码

    这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...

  6. 图片上传并显示(兼容ie),图片大小判断

    图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...

  7. ASP.NET MVC下使用文件上传

    这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新 ...

  8. 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

    Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achi ...

  9. .net mvc + layui做图片上传(二)—— 使用流上传和下载图片

    摘要:上篇文章写到一种上传图片的方法,其中提到那种方法的局限性,就是上传的文件只能保存在本项目目录下,在其他目录中访问不到该文件.这与浏览器的安全性机制有关,浏览器不允许用户用任意的路径访问服务器上的 ...

  10. [Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

    Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件   This project attempts to ach ...

随机推荐

  1. SonarQube规则之漏洞类型

    漏洞类型: 1."@RequestMapping" methods should be "public"漏洞 阻断标注了RequestMapping是contr ...

  2. iOS 推送角标解决方案

    在App启动时:didFinishLaunchingWithOptions 方法中:application.applicationIconBadgeNumber = ; //角标清零 在读消息时: a ...

  3. mysql TOP语句 语法

    mysql TOP语句 语法 作用:用于规定要返回的记录的数目. 语法:SELECT column_name(s) FROM table_name LIMIT number 说明:对于拥有数千条记录的 ...

  4. POJ 2104 K-th Number ( 求取区间 K 大值 || 主席树 || 离线线段树)

    题意 : 给出一个含有 N 个数的序列,然后有 M 次问询,每次问询包含 ( L, R, K ) 要求你给出 L 到 R 这个区间的第 K 大是几 分析 : 求取区间 K 大值是个经典的问题,可以使用 ...

  5. CityMaker SDK与三维GIS城市

    https://wenku.baidu.com/view/abc2a32f01f69e3142329426.html https://blog.csdn.net/weixin_38476447/art ...

  6. 关于vsftpd连接出现“响应: 530 Permission denied”的坑

    在设置vsftpd.conf文件中的变量 anonymous_enable=YES 需要使用用户进行登录,如果conf文件内缺少下列三行中的任何一行都需要补充完整,不然就会出现 “响应: 530 Pe ...

  7. fedora18 You might need to install dependency packages for libxcb.

    22 down vote The page Qt for X11 Requirements lists some packages required to build Qt on Debian. Th ...

  8. GTID复制模式切换与传统主从复制间切换

    GTID复制模式切换到传统主从复制主从复制环境:主库:10.18.10.11从库:10.18.10.12MySQL5.7.22 切换之前查看下主从gitd_mode参数值主服务器:gtid_mode值 ...

  9. set集合 浅层拷贝会和深层拷贝

    一.什么是set集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 1.去重,把一个列表变成集合, ...

  10. Ajax 实现导出文件-支持批量

    个人感觉前端不行,好多东西记不住,所以只能将遇到的坎以及解决方案记录下,方便以后用到时查找. 首先:ajax不支持流,网上找了好多版本,感觉下面的方案不错,实验了下可行. 前端页面: <div ...