js上传本地图片遇到的问题
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上传本地图片遇到的问题的更多相关文章
- KindEditor上传本地图片在ASP.NET MVC的配置
http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...
- .net mvc4 利用 kindeditor 上传本地图片
http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...
- tinymce4.x 上传本地图片(自己写个插件)
tinymce是一款挺不错的html文本编辑器.但是添加图片是直接添加链接,不能直接选择本地图片. 下面我写了一个插件用于直接上传本地图片. 在tinymce的plugins目录下新建一个upload ...
- tinymce4.x 上传本地图片 (转载)
转载自:http://www.cnblogs.com/fhen/p/5809514.html tinymce4.x 上传本地图片 tinymce是一款挺不错的html文本编辑器.但是添加图片是直接 ...
- 个人永久性免费-Excel催化剂功能第102波-批量上传本地图片至网络图床(外网可访问)
自我突破,在100+功能后,再做有质量的功能,非常不易,相对录制视频这些轻松活,还是按捺不住去写代码,此功能虽小,但功课也做了不少,希望对真正有需要的群体带来一些惊喜. 背景介绍 图床的使用,一般是写 ...
- js上传压缩图片
原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...
- [原创]Python/Django使用富文本编辑器XHeditor上传本地图片
前言 为了在Django框架下使用Xheditor上传图片,居然折腾了我一个晚上.期间也遇到种种问题,网上相关资料极少.现在把经验分享给大家. 正文 xheditor篇 1.下载http://xhed ...
- JS实现上传本地图片前先预览
<style type="text/css"> #preview /*这个就是预览的DIV的ID*/ { filter:progid:DXImageTransform. ...
- html5上传本地图片,在线预览及裁剪(filereader,canvas)
1 我们常常需要上传头像,点击上传按钮时候需要预览一下,使用filereader方法无需和后台交互,代码如下: //本地图片在上传之前的预览效果 //图片上传预览 function previewIm ...
随机推荐
- [Jobdu] 题目1391:顺时针打印矩阵
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2 ...
- vim:隆重推荐括号补全插件--auto-pairs
太好用了,括号相关的各种麻烦都一一解决,剩下的就是熟练,熟练,在熟练了.呵呵 连教程都做得这么好,先放这里,以后慢慢翻译. Auto Pairs Insert or delete brackets, ...
- 桶排序-py
http://blog.chinaunix.net/uid-20775448-id-4222915.html 看了<啊哈算法>第一节,排序从小到大自己实现了. 从大到小,搜集了下资料.看了 ...
- 教你如何写thinkphp多表查询语句
1.table()函数 thinkphp中提供了一个table()函数,具体用法参考以下语句: $list=$Demo->table('think_blog blog,think_type ty ...
- 【Android】21.4 图片动画缩放示例
分类:C#.Android.VS2015: 创建日期:2016-03-21 一.简介 该例子演示如何动画缩放图片,实现类似"点击看大图"的效果. 二.示例 1.运行截图 2. ...
- 飘逸的python - 几行代码实现unix管道风格的函数调用
用过linux的基本知道它的管道,是将一个程序或命令的输出作为还有一个程序或命令的输入. 废话少说,以下我们看用python怎么实现unix管道风格的函数调用. #coding=utf-8 class ...
- apache2部署django的错误
apache的日志例如以下报错: /var/www/my_project/myproject/wsgi.py cannot be loaded as Python module ImportError ...
- c++之五谷杂粮---3
3.1如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数. 3.1.1不允许两个函数除了返回类型外所有的要素都相同.(这也是很好解释的) #include<iostream&g ...
- QT安装在VS2008中的方法
(一)工欲善其事,必先利其器,废话不多讲. 原文:http://www.cnblogs.com/zwq194/archive/2011/02/19/1958713.html 总结起来网上流行的VS20 ...
- 一款基于jquery实现的鼠标单击出现水波特效
今天要为大家绍一款由jquery实现的鼠标单击出现水波特效.用鼠标猛点击页面,你可以看到页面不断出面水波纹效果.然后水波纹渐渐消失.效果非常不错.我们一起看下效果图: 在线预览 源码下载 实现的代 ...