C#实现图片上传与浏览切换的方法
作者:shichen2014 发布时间:2023-10-06 06:44:05
标签:C#,图片,上传,浏览,切换
本文以一个完整实例讲述了C#实现图片上传与浏览切换的方法,对于进行C#程序设计来说具有一定的借鉴价值。分享给大家供大家参考。
具体实现代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script src="js/jquery-1.7.2.js" type="text/javascript"></script>
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.upic').change(function() {
var filename = $(this).val().replace(/.*(\/|\\)/, ""); //文件名
var fileExt = (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : ''; //后缀名
if (fileExt != "jpeg" && fileExt != "jpg" && fileExt != "gif" && fileExt != "png") {
alert('请选择一个jpg或gif的图片文件');
return;
};
$(this).parent().parent().parent().addClass('support');
if ($.browser.msie) {
if ($.browser.version == "6.0") {
$(this).parent().parent().siblings(".preview").html('<img style="height:auto;width:88px;" src="' + $(this).val() + '"/>');
} else {
var previewDiv = $(this).parent().parent().siblings(".preview");
previewDiv.css({ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image)" });
previewDiv[0].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";
try {
previewDiv[0].filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = getPath($(this)[0]);
}
catch (e) {
alert(e.name + ": " + e.message);
alert("无效的图片文件!");
return;
}
}
}
else {
//var data=$(this)[0].files.item(0).getAsDataURL();
var data = window.URL.createObjectURL($(this)[0].files[0]);
$(this).parent().parent().siblings(".preview").html('<img style="height:auto;width:88px;" src="' + data + '"/>');
return;
}
$(this).parent().parent().parent().mouseover(function() { $(this).addClass('hover'); }).mouseout(function() { $(this).removeClass('hover'); });
});
$('.del').click(function() {
$(this).parent().siblings("[name='isDel']").val("1");
var file = $(this).parent().siblings(".upload").children().children(".upic");
file.after(file.clone(true).val("")).remove();
$(this).parent().siblings(".preview").after('<div class="preview"></div>').remove();
//$(this).parent().siblings(".preview").empty();
$(this).parent().parent().removeClass('support').mouseout().unbind('mouseover');
});
if ($.browser.msie) {
$('#memberPhoto').filter('.support').mouseover(function() { $(this).addClass('hover'); }).mouseout(function() { $(this).removeClass('hover'); });
};
//获得上传控件的值,obj为上传控件对象
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();
document.getElementById("btnSave").focus(); //hack for IE9下,如果file控件获得焦点,则document.selection.createRange()拒绝访问
return document.selection.createRange().text;
}
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="pic">
<div id="memberPhoto" style="position: relative">
<%if (!string.IsNullOrEmpty(imagePath))
{%>
<div class="preview">
<img src="../<%=imagePath%>" style="height: auto; width: 88px;" /></div>
<%}
else
{%>
<div class="preview">
</div>
<%}%>
<div class="upload">
<a class="a-sc" href="javascript:;">
<input id="imageUpload" class="upic" type="file" name="upic" runat="server" />
</a>
</div>
<div class="act">
<span class="del">删除</span>
</div>
</div>
</div>
</form>
</body>
</html>
public partial class Default3 : System.Web.UI.Page
{
public string imagePath = "";
protected void Page_Load(object sender, EventArgs e)
{
}
}
希望本文实例对大家的C#程序设计有所帮助。


猜你喜欢
- 效果图如下所示:先给大家说下实现android 跳转到通讯录的实现思路:1.点击跳转到通讯录界面2.获取通讯录姓名和手机号码3.回调显示姓名
- 废话不多说了,直接给大家贴代码了,具体代码如下所述:package com.example.esp8266;import java.io.I
- 翻看印象笔记发现自己整理过arraycopy()这样一个方法,码字放到这里:System.arraycopy()是一个静态方法,用来实现重置
- JSR303简介JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernat
- 本文介绍了Android:利用SharedPreferences实现自动登录,具体如下:主要代码:public class LoginAct
- AppWidgetProvider 用来在HOME页面显示插件实现步骤:1、为AppWidget提供一个元布局文件AppWigdetProv
- 帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫
- 在日常开发的过程中我们经常会需要调用第三方组件或者数据库,有的时候可能会因为网络抖动或者下游服务抖动,导致我们某次查询失败。这种时候我们往往
- 利用mybtis插件打印完整的sql,将占位符?替换成实际值import org.apache.ibatis.cache.CacheKey;
- 上转型对象:子类创建对象 并将这个对象引用赋值给父类的对象。语法格式:Father f=new Son();注意事项:上转型对象是由子类创建
- 简介最近花了两天时间研究使用Flutter开发一个抖音国际版. 个人感觉使用Flutter开发app快得不要不要的额. 两天就基本可以开发个
- Java 中的线程有以下状态:新建状态(New):新创建的线程,还未执行。就绪状态(Runnable):执行了 start() 方法,等待运
- Spring Boot除了可以打可执行jar包外,也支持传统的war包。本文介绍如何使用Spring Boot构建传统war包。Spring
- SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock
- 引言因为写了不少 Spring Security 文章的缘故,所以总是有小伙伴来问松哥:按钮级别的权限怎么实现?甚至有一些看过 vhr 的小
- 本文需要解决的问题笔者最近正在做一个项目,里面需要用到 Android Notification 机制来实现某些特定需求。我正好通过这个机会
- BroadcastReceiver不仅可以接收系统广播,也可接收自定义的广播 1.定义一个广播 * public class My
- 今天去某在线教育面试面试官让做的一道题,题目描述如下:给定一个不重复的无序数组arr和一个定值num查找arr中是否有两个数的和等于num有
- DAO层测试难点可重复性,每次运行单元测试,得到的数据是重复的独立性,测试数据与实际数据相互独立数据库中脏数据预处理不能给数据库中数据带来变
- RecyclerView是Android 5.0新增的控件,在android-support-v7下面。官方文档对RecycleView介绍