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. QThread 实用技巧、误区----但文档中没有提到

    本文主要内容: 在任务一中,用 四 种方式实现:点击界面按钮,开线程运行一段程序,结果显示在一个Label上.1. 用不正确的方式得到看似正确的结果2. 用Qt Manual 和 例子中使用的方法3. ...

  2. 关于modelsim时序仿真的几篇文章

    1.http://wenku.baidu.com/view/386597f37c1cfad6195fa797.html 2.http://wenku.baidu.com/view/4b9521f9f7 ...

  3. VS2010中水晶报表插件下载安装方法

    Visual Studio 2010默认不带水晶报表,需要安装一个水晶报表插件,首先下载此插件: http://downloads.businessobjects.com/akdlm/cr4vs201 ...

  4. C++面向对象程序设计的一些知识点(5)

    摘要:运算符能给程序员提供一种书写数学公式的感觉,本质上运算符也是一种函数,因此有类内部运算符和全局运算符之分,通过重载,运算符的“动作”更加有针对性,编写代码更像写英文文章. 1.C++标准允许将运 ...

  5. sqlserver判断是否为数字的函数

    ISNUMERIC 确定表达式是否为一个有效的数字类型. 语法  ISNUMERIC ( expression ) 参数 expression 要计算的表达式. 返回类型 int 测试: select ...

  6. pyqt布局管理器QGridLayout简单示例

    # _*_ coding:utf-8 _*_ import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__ ...

  7. C语言一闪而过

    头文件#include<stdlib.h> main函数system("pause");

  8. R ggplot2 线性回归

    摘自  http://f.dataguru.cn/thread-278300-1-1.html library(ggplot2) x=1:10y=rnorm(10)a=data.frame(x= x, ...

  9. C语言实现单链表(不带头结点)节点的插入

    对单链表进行增删改查是最主要的操作.我在上一篇博客<C语言实现链表节点的删除>实现了删除单链表中的某个节点. 这里我们要来实如今某个位置插入节点.演示样例代码上传至https://gith ...

  10. js获取checkbox值的方法

    js获取checkbox值的方法.分享给大家供大家参考.具体实现方法如下:<html> <head> <meta http-equiv="Content-Typ ...