1.改变页面文件上传默认的样式

<input type="text" size="20" id="upfile" style="border:1px dotted #ccc">
<input type="button" value="浏览" onclick="file.click()" style="border:1px solid #ccc;background:#fff">
<input type="file" id="file" name="file" style="display:none" onchange="upfile.value=this.value">

2.校验文件类型为图片

/**
* @description 校验文件类型是否是图片文件
* @param file_id 图片文件选择对应的id
*/
function validateFileType(file_id) {
try {
var filePath = $("#"+file_id+"").val() ; //获取文件路径
var extStart = filePath.lastIndexOf(".") ;
var ext = filePath.substring(extStart, filePath.length).toUpperCase() ; //获取文件拓展名
//判断文件是否是图片文件
if(ext !=".JPG" && ext != ".PNG" && ext != ".BMP" && ext != ".DIF" && ext != ".JPEG"){
return false;
}
return true ;
} catch (e) {
// TODO: handle exception
alert('错误','校验图片类型异常','error') ;
}
}

3.获取文件大小

/**
* @description 获取图片文件大小
* @param file_id 图片文件选择对应的id
* @returns fileSize 图片文件大小(单位为byte)
*/
function getFileSize(file_id) {
try {
var fileInput = $("#"+file_id+"")[0] ;
var fileSize = fileInput.files[0].size ;
return fileSize ;
} catch (e) {
// TODO: handle exception
alert('错误','获取文件大小异常','error') ;
}
}

4.本地图片预览(于chrom浏览器而言)

  chrome不能直接获取所上传图片的本地路径(实际获取的是一个虚拟路径),故不可以直接给img的 src 赋值来实现图片预览。通过FileReader来解决:

//查看图片
$("#showPicture").click(function(){
var reader = new FileReader();
reader.readAsDataURL($("#file")[0].files[0]);
reader.onload = function(evt){
  var imgSrc = evt.target.result;
$("#picture").attr("src", imgSrc) ;
} ;
return false ;
}) ;

5.关于图片的等比例显示

/**
* @description 图片大小自适应
* @param maxWidth: 最宽限; maxHeight: 最高限; width: 图宽; height: 图高
* @returns param
*/
function pictureFit_auto( maxWidth, maxHeight, width, height ){
//图片返回信息
var param = {top:0, left:0, width:width, height:height};
if(width > height){ //宽 > 高
param.width = maxWidth-4 ;
param.height = (param.width/width)*height ;
param.left = 2;
param.top = Math.round((maxHeight - param.height) / 2);
}else{
param.height = maxHeight-4 ;
param.width = (param.height/height)*width
param.left = Math.round((maxWidth - param.width) / 2);
param.top = 2;
}
return param;
}

js上传本地图片遇到的问题的更多相关文章

  1. KindEditor上传本地图片在ASP.NET MVC的配置

    http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...

  2. .net mvc4 利用 kindeditor 上传本地图片

    http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...

  3. tinymce4.x 上传本地图片(自己写个插件)

    tinymce是一款挺不错的html文本编辑器.但是添加图片是直接添加链接,不能直接选择本地图片. 下面我写了一个插件用于直接上传本地图片. 在tinymce的plugins目录下新建一个upload ...

  4. tinymce4.x 上传本地图片 (转载)

    转载自:http://www.cnblogs.com/fhen/p/5809514.html tinymce4.x 上传本地图片   tinymce是一款挺不错的html文本编辑器.但是添加图片是直接 ...

  5. 个人永久性免费-Excel催化剂功能第102波-批量上传本地图片至网络图床(外网可访问)

    自我突破,在100+功能后,再做有质量的功能,非常不易,相对录制视频这些轻松活,还是按捺不住去写代码,此功能虽小,但功课也做了不少,希望对真正有需要的群体带来一些惊喜. 背景介绍 图床的使用,一般是写 ...

  6. js上传压缩图片

    原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...

  7. [原创]Python/Django使用富文本编辑器XHeditor上传本地图片

    前言 为了在Django框架下使用Xheditor上传图片,居然折腾了我一个晚上.期间也遇到种种问题,网上相关资料极少.现在把经验分享给大家. 正文 xheditor篇 1.下载http://xhed ...

  8. JS实现上传本地图片前先预览

    <style type="text/css"> #preview /*这个就是预览的DIV的ID*/ { filter:progid:DXImageTransform. ...

  9. html5上传本地图片,在线预览及裁剪(filereader,canvas)

    1 我们常常需要上传头像,点击上传按钮时候需要预览一下,使用filereader方法无需和后台交互,代码如下: //本地图片在上传之前的预览效果 //图片上传预览 function previewIm ...

随机推荐

  1. Jquery—Jquery异步功能实例

    Jquery确实是一个非常好的JavaScript框架,今天利用闲暇时间给大家一个借助Jquery异步实现校验username的唯一性的样例: 代码1--index.jsp文件: <%@ pag ...

  2. [svc] cisco router as ca server

    把cisco路由器配置成ca服务器 参考 clock set 10:00:00 Dec 23 2017 conf t crypto key generate rsa general-keys labe ...

  3. hdoj 1027 Ignatius and the Princess II 【逆康托展开】

    Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ( ...

  4. angular学习笔记(三)-视图绑定数据的两种方式

    绑定数据有两种方式: <!DOCTYPE html> <html ng-app> <head> <title>2.2显示文本</title> ...

  5. html 中 input 控制输入百分比数值范围(0.0-100)

    通过正则表达式在HTML的input中控制百分数的输入值(0.0-100),并且控制小数点的输入位置和个数 方案一: <input type="text" id=percen ...

  6. Oracle PLSQL Demo - 22.查看字符串的长度[lengthb, length],判断字符串是否包含中文

    --Count the length of string select lengthb('select * from scott.emp') as countted_by_byte, length(' ...

  7. 使用python的email、smtplib、poplib模块收发邮件

    使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...

  8. 解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题

    最近在项目中,读取上传的csv文件,并写入时,会报编码问题, with open(origin_file_path, mode='wb')as f: for chunk in file_obj: f. ...

  9. iOS UITableView中关于cell里的按钮被点击时如何确定是哪一个section

    在section=10:row=1:的UITableView中,每一个cell都带有一个按钮,例如如下的图片一样每一个cell中都有一个“进入店铺的按钮”,但是如果我点击相应的cell要进入对应的店铺 ...

  10. 一款基于jquery的手风琴显示详情

    今天要各网友分享一款基于jquery的手风琴显示详情实例.当单击顶部箭头的时候,该项以手风琴的形式展示显示详情.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div al ...