表单元素file设置隐藏,通过其他元素打开:

.imgfile为input file

 $(".ul").click(function () {return $(".imgfile").click();
});

JS部分:

$(".imgfile").change(function () {
var file = $(".imgfile").get(0).files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = function () {
$("#Image1").attr("src", reader.result);
}
}); $("#register2").click(function () {var IMG_BASE = $("#Image1").attr("src"); //要上传的图片的base64编码
var IMG_ROUTE = $(".imgfile").val();//获取上传图片路径,为获取图片类型使用
var IMG_ENDFOUR = IMG_ROUTE.substr(IMG_ROUTE.length - 4, 4);//截取路径后四位,判断图片类型
var IMG_FOMATE = "jpeg"; //图片类型***
if (IMG_ENDFOUR.trim() == ".jpg")
IMG_FOMATE = "jpg";
else if (IMG_ENDFOUR.trim() == ".png")
IMG_FOMATE = "png";
else if (IMG_ENDFOUR.trim() == ".bmp")
IMG_FOMATE = "bmp";
//图片正式开始上传
$.ajax({
type: "post",
url: "server/head.ashx",
data: { 'imgBase': IMG_BASE, 'imgFormat': IMG_FOMATE },
dataType: "text",
success: function (data) {
//data为返回的图片路径
});
});

一般处理程序部分:

using System.IO; //需要这三个命名空间
using System.Drawing;//***
using System.Drawing.Imaging;//*** string imgBase = context.Request["imgBase"];//传递过来的base64编码
string imgFomate = context.Request["imgFormat"];//传递过来的图片格式
string end = "1";
string imgReadyBase = imgBase.Substring(imgBase.IndexOf("4") + 2);//截取base64编码无用开头
byte[] bytes = System.Convert.FromBase64String(imgReadyBase);//base64转为byte数组
MemoryStream ms = new MemoryStream(bytes);//创建内存流,将图片编码导入
Image img = Image.FromStream(ms);//将流中的图片转换为Image图片对象
//利用时间种子解决伪随机数短时间重复问题
Random ran = new Random((int)DateTime.Now.Ticks);
//文件保存位置及命名,精确到毫秒并附带一组随机数,防止文件重名,数据库保存路径为此变量
string s = ran.Next().ToString();
string serverPath = "../head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
//路径映射为绝对路径
string path = context.Server.MapPath(serverPath);
ImageFormat imgfor = ImageFormat.Jpeg;//设置图片格式
if (imgFomate == "png") imgfor = ImageFormat.Png;
try
{
img.Save(path, imgfor);//图片保存
}
catch { end = "0"; }
end = "head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
context.Response.Write(end);
context.Response.End();

JQuery input file 上传图片的更多相关文章

  1. jquery解决file上传图片+图片预览

    js解决file上传图片+图片预览 demo案例中代码为js原生控制,可以根据项目的需求修改为jquery操作 <!DOCTYPE html><html lang="en& ...

  2. jQuery input -> file change事件bug

    由jQuery绑定类型为file的input控件的change事件,发现只能被触发一次,修改方法 --> 原始代码: $input.change(function() { // somethin ...

  3. input file 上传图片问题

    html代码如下: <input id="fileup" type="file" accept="image/*" capture=& ...

  4. jquery html5 file 上传图片显示图片

    jquery js 的代码:不同浏览器下的路径 //建立一個可存取到該file的url function getObjectURL(file) {     var url = null ;     i ...

  5. html5手机 input file 上传图片 调用API

    <input type="file" accept="video/*;capture=camcorder"> <input type=&quo ...

  6. (转)html中使用表单和input file上传图片

    本文转载自:http://hi.baidu.com/love_1210/item/120e452b42b2a854c38d59eb 客户端代码: <form name="form1&q ...

  7. input file上传图片预览,非插件

    Input标签 <input type="file" name="pic" onchange="changepic(this)" mu ...

  8. jquery input file 多图上传,单张删除,查看

    <div class="form-group"> <label for="imgs" class="col-md-3 col-sm- ...

  9. 从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别

    背景: 在清空input file标签选中值时,分别用了以下方法,发现有的对有的错: [√]$("#file")[0].value = ""; [√]$(&qu ...

随机推荐

  1. data.table 中的动态作用域

    data.table 中最常用的语法就是 data[i, j, by],其中 i.j 和 by 都是在动态作用域中被计算的.换句话说,我们不仅可以直接使用列,也可以提前定义诸如 .N ..I 和 .S ...

  2. Flutter的需要与原生交互的一些常用库

    [说明]由于这些库一直在更新,请自己选择合适的稳定版本下载. 另外如果发现有问题或者你有更好的库,欢迎留言告诉我. 谷歌官方的针对Dart语言的一些实用性的功能以及扩展的库 -- Quiver Qui ...

  3. Spring IOC 源码简单分析 03 - 循环引用

    ### 准备 ## 目标 了解 Spring 如何处理循环引用 ##测试代码 gordon.study.spring.ioc.IOC03_CircularReference.java   ioc03. ...

  4. apache配置文件详解与优化

    apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...

  5. Mybatis之SSM配置

    applicationContext-dao.xml <?xml version="1.0" encoding="UTF-8"?> <bean ...

  6. UVALive-4452 The Ministers' Major Mess (2-SAT)

    题目大意:有n个问题,m个人来投票,没人最多投4票,问该怎样决定才能使每个人都有超过一半的票数被认可? 题目分析:2-SAT问题.如果某个人投的票数少于2,则这两票军被采纳,如果票数至少三票,则最多有 ...

  7. Linux中查看进程和杀掉进程

    ps -A查看正在运行的所有进程 kill -9 xxx杀掉某个进程,xxx为进程ID.

  8. 身份证&银行卡识别方案

    一.  调用第三方服务 腾讯云OCR识别: 实现方法:Post图片 URL到腾讯云服务器.Post图片文件 到腾讯云服务器 b.    报价: 月接口调用总量 0<调用量≤1000 1000&l ...

  9. Linux 键盘输入#的时候变成£

    /********************************************************************************* * Linux 键盘输入#的时候变 ...

  10. 20145237 Exp2 后门原理与实践

    20145237<网络对抗>Exp2 后门原理与实践 Windows获得Linux Shell 在Windows下,先使用ipconfig指令查看本机IP: 输入ncat.exe -l - ...