`
wangjinshan1314
  • 浏览: 8509 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

图片上传的实现

 
阅读更多
<html>
<title>文件上传前台控制检测程序 v0.6</title>
<style>
body,td{font-size:12px;}
</style>
<script type="text/javascript" src="upPic.js" ></script> 
<form enctype="multipart/form-data" method="POST" onsubmit="return HasChecked;">
<fieldset style="width: 372; height: 60;padding:2px;">
<legend><font color="#FF0000">图片来源</font></legend>
<input type="radio" name="radio1" checked onclick="SwitchUpType(true);">本地<input type="radio" name="radio1" onclick="SwitchUpType(false);">远程:<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">
<input type="submit" id="UploadButton" value="开始上传" disabled><br>
<div style="border:1 solid #808080;background:#E0E0E0;width100%;height:20px;color:#606060;padding:5px;">
<table border="0"><tr><td width="60" id="PreviewImg">预览区</td><td id="MsgList" valign="top"></td></tr></table>
</div>
</fieldset>
</form>

</body>

</html>

/******************************js代码**************************/

var ImgObj=new Image();//建立一个图像对象
var num=0;
var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"//全部图片格式类型
var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg//全局变量 图片相关属性

//以下为限制变量
var AllowExt=".jpg|.gif|.doc|.txt|"//允许上传的文件类型 &#320;为无限制 每个扩展名后边要加一个"|" 小写字母表示
//var AllowExt=0
var AllowImgFileSize=100;//允许上传图片文件的大小 0为无限制  单位:KB
var AllowImgWidth=1024;//允许上传的图片的宽度 &#320;为无限制 单位:px(像素)
var AllowImgHeight=800;//允许上传的图片的高度 &#320;为无限制 单位:px(像素)

HasChecked=false;

function CheckProperty(obj)//检测图像属性
{
  FileObj=obj;
  if(ErrMsg!="")//检测是否为正确的图像文件 返回出错信息并重置
  {
    ShowMsg(ErrMsg,false);
    return false;//返回
  }

  if(ImgObj.readyState!="complete")//如果图像是未加载完成进行循环检测
  {
    setTimeout("CheckProperty(FileObj)",500);
    return false;
  }

  ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得图片文件的大小
  ImgWidth=ImgObj.width//取得图片的宽度
  num=Math.round(ImgWidth/250);
  ImgHeight=ImgObj.height;//取得图片的高度
  FileMsg="\n图片大小:"+ImgWidth+"*"+ImgHeight+"px";
  FileMsg=FileMsg+"\n图片文件大小:"+ImgFileSize+"Kb";
  FileMsg=FileMsg+"\n图片文件扩展名:"+FileExt;

  if(AllowImgWidth!=0&&AllowImgWidth<ImgWidth)
    ErrMsg=ErrMsg+"\n图片宽度超过限制。请上传宽度小于"+AllowImgWidth+"px的文件,当前图片宽度为"+ImgWidth+"px";

  if(AllowImgHeight!=0&&AllowImgHeight<ImgHeight)
    ErrMsg=ErrMsg+"\n图片高度超过限制。请上传高度小于"+AllowImgHeight+"px的文件,当前图片高度为"+ImgHeight+"px";

  if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
    ErrMsg=ErrMsg+"\n图片文件大小超过限制。请上传小于"+AllowImgFileSize+"KB的文件,当前文件大小为"+ImgFileSize+"KB";

  if(ErrMsg!="")
    ShowMsg(ErrMsg,false);
  else
    ShowMsg(FileMsg,true);
}

ImgObj.onerror=function(){ErrMsg='\n图片格式不正确或者图片已损坏!'}

function ShowMsg(msg,tf)//显示提示信息 tf=true 显示文件信息 tf=false 显示错误信息 msg-信息内容
{
  msg=msg.replace("\n","<li>");
  msg=msg.replace(/\n/gi,"<li>");
  if(!tf)
  {
    document.all.UploadButton.disabled=true;
    FileObj.outerHTML=FileObj.outerHTML;
    MsgList.innerHTML=msg;
    HasChecked=false;
  }
  else
  {
    document.all.UploadButton.disabled=false;
    if(IsImg)
      PreviewImg.innerHTML="<img src='"+ImgObj.src+"' width='"+ImgWidth/num+"' height='"+ImgHeight/num+"'>"
    else
      PreviewImg.innerHTML="非图片文件";
    MsgList.innerHTML=msg;
    HasChecked=true;
  }
}

function CheckExt(obj)
{
  ErrMsg="";
  FileMsg="";
  FileObj=obj;
  IsImg=false;
  HasChecked=false;
  PreviewImg.innerHTML="预览区";
  if(obj.value=="")return false;
  MsgList.innerHTML="文件信息处理中...";
  document.all.UploadButton.disabled=true;
  FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
  if(AllowExt!=0&&AllowExt.indexOf(FileExt+"|")==-1)//判断文件类型是否允许上传
  {
    ErrMsg="\n该文件类型不允许上传。请上传 "+AllowExt+" 类型的文件,当前文件类型为"+FileExt;
    ShowMsg(ErrMsg,false);
    return false;
  }

  if(AllImgExt.indexOf(FileExt+"|")!=-1)//如果图片文件,则进行图片信息处理
  {
    IsImg=true;
    ImgObj.src=obj.value;
    CheckProperty(obj);
    return false;
  }
  else
  {
    FileMsg="\n文件扩展名:"+FileExt;
    ShowMsg(FileMsg,true);
  }
 
}

function SwitchUpType(tf)
{
    if(tf)
     str='<input type="file" name="file1" onchange="CheckExt(this)" style="width:180px;">'
    else
     str='<input type="text" name="file1" onblur="CheckExt(this)" style="width:180px;">'
    document.all.file1.outerHTML=str;
    document.all.UploadButton.disabled=true;
    MsgList.innerHTML="";
}
分享到:
评论

相关推荐

    基于的SSM图片上传实现

    在这个“基于SSM的图片上传实现”项目中,我们将探讨如何利用这三大框架来实现在Web应用程序中处理图片上传和查询的功能。 首先,Spring作为核心的依赖注入(DI)和面向切面编程(AOP)框架,提供了管理和控制应用...

    JSP图片上传实现

    总结,"JSP图片上传实现"是一个涵盖前端交互、后端处理、文件操作和安全性等多个方面的综合实践。通过MyEclipse或Eclipse这样的开发工具,我们可以方便地构建这样一个系统,为用户提供便捷的图片上传功能。在开发...

    图片上传实现(java)_微信小程序模板js代码前台前端H5页面源码.rar

    本资源“图片上传实现(java)_微信小程序模板js代码前台前端H5页面源码.rar”提供了完整的实现方案,包括Java后端处理和前端微信小程序、H5页面的源码。下面我们将详细探讨这一主题。 首先,我们关注的是前端部分...

    文本编辑器CKEditor 3使用配置和图片上传实现实例

    文本编辑器CKEditor 3使用配置和图片上传实现实例,里面包含了一个项目源代码和使用文档。项目经过自己的测试,是成功的,但里面还包含了其他程序代码没有去掉,不会影响的。 项目是使用jsp+struts 1.2实现。

    实现图片上传实现图片上传

    这里我们将深入探讨实现图片上传的关键步骤、涉及的技术和最佳实践。 首先,前端部分通常使用HTML5的`&lt;input type="file"&gt;`元素来让用户选择本地的图片文件。通过JavaScript或者jQuery,我们可以监听这个元素的`...

    仿淘宝图片上传

    【仿淘宝图片上传】是一个基于jQuery实现的图片上传功能,主要目标是提供与淘宝网站类似的用户体验,让用户能够方便快捷地上传图片。这个功能通常包括图片预览、多图选择、图片裁剪、上传进度显示等多个关键步骤,...

    struts2实现单个图片上传

    Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。...这是一个基础的图片上传实现,实际项目中可能还需要考虑错误处理、文件大小限制、文件类型检查等更多细节。

    uniapp多张图片上传.rar

    在实际的多张图片上传实现中,uniapp 提供了 `uni.chooseImage` 方法用于让用户选择图片,可以设置选择图片的数量限制。选择后,图片数据会被返回,开发者可以通过 `uni.uploadFile` 将图片数据上传到服务器。在上传...

    图片上传实现(java).zip小程序例子源码打包下载适合研究学习技术

    图片上传实现(java).zip小程序例子源码打包下载适合研究学习技术图片上传实现(java).zip小程序例子源码打包下载适合研究学习技术 1.适合学习做毕业设计参考模板。 2.适合程序员学习开发小程序研究用 3.适合小...

    Java实现图片上传

    本文将深入探讨如何使用Java来实现图片上传的功能,主要涉及的技术点包括文件处理、HTTP请求、Multipart编码以及服务器端存储策略。 首先,我们需要了解Java中的文件操作。Java提供了一系列的File类API,可以用来...

    CKEditor实现图片上传(使用Struts2)

    在CKEditor中实现图片上传功能,通常会结合后端框架如Struts2进行处理。本文将深入探讨如何利用CKEditor与Struts2实现图片上传的功能。 首先,我们需要在CKEditor的配置中启用图片上传功能。这可以通过修改CKEditor...

    h5图片上传插件

    开发者可以根据这些资源来集成到自己的项目中,或者作为学习H5图片上传实现的参考。 总的来说,H5图片上传插件是网页开发中的一个重要工具,它通过便捷的操作和丰富的功能提升了用户的交互体验。在实际应用中,选择...

    图片上传功能实现

    本篇文章将详细讲解如何实现一个支持多张图片上传、相册选择、拍照以及图片删除与重新上传的功能。 首先,我们需要理解图片上传的基本流程。这个过程通常包括以下几个步骤: 1. **用户界面**:设计友好的用户界面...

    java实现图片上传并显示

    以下是实现图片上传的基本步骤: 1. **配置Struts2**:在struts.xml配置文件中,定义一个Action,比如`ImageUploadAction`,并设置对应的接收方法,如`execute()`。同时,需要配置允许文件上传的相关参数。 2. **...

    Android图片上传实现预览效果

    总之,Android图片上传实现预览效果涉及到了文件选择、图片处理、UI布局、自定义Adapter、ViewPager使用、网络请求等多个技术点,理解并掌握这些知识点对于Android开发者来说至关重要。通过合理的设计和实现,可以为...

    vue+elementUI实现图片上传功能

    在前端开发中,图片上传是一种常见需求,Vue.js作为现代web开发中非常受欢迎的JavaScript框架之一,与Element UI这一基于Vue 2.0的桌面端组件库结合使用时,可以非常便捷地实现图片上传功能。Element UI提供了丰富的...

    jquery实现图片即时上传

    在现代Web开发中,用户交互性是至关重要的,特别是在处理媒体内容如图片上传时。`jQuery`是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互,因此使用`jQuery`实现图片即时上传是一种常见且高效...

    html5、php图片上传

    面向过程的PHP图片上传实现相对简单,主要涉及`$_FILES`全局数组,它包含了客户端上传文件的所有信息。你可以检查`$_FILES['file_name']['error']`来判断上传是否成功,然后通过`move_uploaded_file()`函数将临时...

    TinyMCE 实现本地图片上传

    在本教程中,我们将深入探讨如何在TinyMCE中实现本地图片上传功能。 首先,你需要在项目中引入TinyMCE。这通常通过下载其源码或通过CDN链接完成。一旦引入,你需要配置TinyMCE,指定一个容器元素,以及所需的工具栏...

    jsp Ajax图片上传

    - `upload.rar`、`Ajax%2Bupload.rar`、`ajaxfileupload.rar`、`FileUpload_jsp.rar`、`jsp无刷新上传.rar` 都是关于不同方式的图片上传实现,可能包含了不同的技术栈和实现策略。 - `AJAX_Sample_Codes.zip` 可能是...

Global site tag (gtag.js) - Google Analytics