当前位置: 首页 > 编程日记 > 正文

C#.NET 上传图片时怎样限制文件格式

在上传文件时,限制上传的文件为JPG,GIF格式,怎么处理?
源代码:
HttpPostedFile hpf = UploadFile.PostedFile;
try
{
UploadFile.Accept = "images/*";
UpfileName.Text= hpf.FileName;
FileSize.Text = hpf.ContentLength.ToString();
//取得文件名(不含路径)
char[] de = {'\\'};
string[] AFilename = hpf.FileName.Split(de);
string strFilename = AFilename[AFilename.Length-1];
lblFileName.Text = strFilename;
//保存文件到指定路径
hpf.SaveAs(Server.MapPath("..")+@"\..\xwzx\images_thing\"+strFilename);
string var_path = "\\xwzx\\images_thing\\" + strFilename ;
UpfileName.Text = strFilename+"上传成功";
UpfileName.Visible = true;
//保存路径和文件名
myBuExample.UpdateJBJSbyOID(long.Parse(OID.Text.Trim()),var_path);
this.BuilderData();
}
catch
{
UpfileName.Text = UploadFile.Value.ToString() + "上传失败或是出错!";
UpfileName.Visible = true;


string pictype=FileUp.PostedFile.ContentType.ToString().Replace("image/",""); 
if(pictype=="pjpeg")
{
pictype="jpg";
suffix=".jpg";
}
else
{
   pictype="gif";
   suffix=".gif";
}
主要就是通过调试获取图片的类型,再判断
if(Extname.ToUpper() == ".JPG" || Extname.ToUpper() == ".GIF")
{
   //upload
}
else
{
  
}
//Extname判断文件的扩展名
up
如果不是image不上传,不就好了
这个也可以用脚本控制,如果不是你要的格式,就不许上传(主要用到:split)
其实这就是个虚假的限制
如果用户改名等 就不是很好判断 如传 word 文件时
基本没法判断是否是真的 word 文件。
这个功能我是使用客户端脚本实现的。我用onpropertychange事件触发,然后判断文件扩展名的。比在服务器端判断刷新网页感觉好一些
校验文件头数据或者干脆就用Image去打开,截获错误
否则用户可以把一个其它的文件改一下后缀名然后上传得

转载于:https://www.cnblogs.com/Nina-piaoye/archive/2007/01/04/611555.html

相关文章:

前后端分离的探索(三)

文桥,13级机械系学生。在LSGO软件技术团队负责前端部分,本图文是介绍目前流行的前后端分离技术的第三篇,希望大家能够对这块有所了解。 当我们培养了对一门技术的认知,并通过一系列项目对这门技术进行了打磨,接下来我…

ansible批量修改linux服务器密码的playbook

从网上找到批量修改Linux服务器root密码的playbook。 使用方法: 1、输入要修改的inventory组 2、按需要,在playbook中输入要修改的IP、新密码,如下: - hosts: productionremote_user: roottasks:- name: change password for root…

【亲测有效】在win10上如何安装Fortify17.10

Fortify是一款功能强大的源代码安全审计工具,可以进行静态代码扫描来发现源代码中的安全问题。 本文介绍一下如何在win10环境上安装Fortify17.10。 【安装包下载】 下载地址:Fortify17.10安装包 license下载地址: license下载 【环境要求】…

.NET 指南:枚举的设计

枚举提供了为强类型成员所用的常量值集合并且改进了代码可读性。枚举既可以是简单的也可以是标记。简单的枚举包含了没有在位比较操作中被组合或被使用的值。而标记枚举则是通过使用位比较操作关键字 OR 而有意被组合的。通过使用位比较操作关键字 AND 还可以对标记枚举的组合值…

网络框架 - 收藏集 - 掘金

浅谈 Retrofit 封装 - 让框架更加简洁易用 - Android - 掘金 尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiqu..., 本文出自:【gengqiquan的博客】 不...[[译] 网络请求框架 Retrofit 2 使用入门 - Android - 掘金](https:…

当一回标题党“数理系优秀校友访谈”

第一幅图:今天上午“数理系优秀校友访谈 — — 与校友面对面”现场。 图片由单颖同学提供 第二幅图:今天下午教十一D406数理系神秘实验室 图片由周鹏同学提供 第三幅图:我今天的心情 今天,数学物理 一共10名同学被系里…

Fortify 17.10进行源代码安全扫描的方法

Fortify是一款功能强大的源代码安全审计工具,可以进行静态代码扫描来发现源代码中的安全问题。 本文介绍一下如何使用Fortify 17.10进行源代码扫描。 【环境准备】 系统版本:win10版本 [10.0.17134.706] 软件版本:Fortify 17.10 【软件下载…

[翻译]关于SQL CE RDA数据同步的FAQ

Q1. 怎么判断用 RDA Pulled 的表是否是被跟踪的?什么是 RDA 订阅表?A1. 系统表 __sysRDASubscriptions 保存了 RDA 订阅的信息。如果表被拉下来时 tracking 选项打开了(就是 RdaTrackOption.TrackingOn 或 RdaTrackOption.TrackingOnWithInde…

01-01java概述 doc命令、jdk\jre下载安装、path、classpath配置、开发中常见小问题

1:计算机概述(了解) (1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的。(计算器)开发:就是把软件做出来。如何实现软件开发呢?就是使用开发工具和计…

与14级团队同学的约定

总结: 这篇图文主要强调: 1.带学生不能按照自己认为正确的方式统一管理,应该针对学生的特点因材施教。 2.要为学生提供世界观指导,提供与世界观匹配的方法论,如果他们不去思考,就要辅助他们去思考。 带…

如何导出Fortify 17.10扫描报告

使用Fortify对项目源代码进行扫描后,可以把扫描的结果通过报告的形式导出,报告可以保存为pdf格式。 本文介绍一下导出Fortify扫描报告的具体操作步骤。 【环境准备】 系统版本:win10版本 [10.0.17134.706] 软件版本:Fortify 1…

XML Show

1<?xml version"1.0" encoding"gb2312"?>2<sys>3<set>4<ISPLAY intro"是否播放:Y否&#xff0c;N是">Y</ISPLAY>5<filePath intro"文件路径">c:\adFile\</filePath>6<date intro"…

【独家】深入浅出话AI:定义和主要研究方法

直入主题&#xff0c;咱们该先给人工智能来个全面的定义&#xff0c;对吧&#xff1f; 但悲催的是这种清晰唯一的定义在人工智能研究圈里是不存在的&#xff01;&#xff08;不存在至少是因为理解和定义智能本身就是个正在进行时。&#xff09; 人工智能的三种定义 我们确实有很…

C#语言与面向对象技术(3)

本图文主要掌握以下问题&#xff1a; 1. 什么是多态&#xff1f; 2. 多态如何分类&#xff1f; 3. 运行时多态与编译时多态有什么区别&#xff1f; 4. 方法如何重载&#xff1f; 5. 运算符如何重载&#xff1f; 6. override与overload有什么区别&#xff1f; 7. 抽象方法…

【亲测有效】如何安装屏幕录制工具ScreenPresso

ScreenPresso是一款功能强大的截图和录制屏幕工具&#xff0c;安装后可以通过简单的操作就可以录屏屏幕录像。 【安装包】&#xff1a;下载地址 【环境要求】 1&#xff09;win10操作系统 2&#xff09;ScreenPresso安装包 【安装步骤】 step 1 双击已经下载的安装包文件…

2007过年休息的日子

今天值班&#xff0c;2007年上班期间难得的轻闲机会了。借此&#xff0c;为老朋友们更新一下我的近况。年前四五天就请了年休假&#xff0c;准备享受不用上班的日子。以为能过得轻松惬意&#xff0c;想不到没完没了的家务怎么也做不完&#xff0c;似乎每天都是做饭和打扫卫生&a…

Matlab与线性代数 -- 数组的表示,冒号的用法

这段时间有同学给我后台留言&#xff0c;希望能够推送与Matlab相关的内容&#xff0c;本学期该微信号承担了数理系信息教研室线性代数课程内容推送和通知的任务&#xff0c;想来想去&#xff0c;就以此为契机&#xff0c;把Matlab的内容和线性代数的内容结合起来吧&#xff0c;…

利用SurfaceView显示正弦曲线,仿造示波器

众所周知&#xff0c;view是通过刷新来重绘视图的&#xff0c;Android系统通过发出VSYNC信号来进行屏幕重绘&#xff0c;刷新的时间间隔为16ms&#xff0c;如果在16ms内view完成你所需要的所有操作&#xff0c;那么用户在视觉上就不会产生卡顿的感觉&#xff1b;而如果执行的操…

如何使用OWASP Dependency Check的命令行(CLI)模式进行依赖库安全漏洞扫描

OWASP Dependency Check是一款用于识别项目的依赖项是否有已知漏洞的工具&#xff0c;本文介绍一下如何使用Dependency Check工具的命令行模式进行依赖库漏洞扫描。 【下载地址】&#xff1a;安装包下载 【环境要求】&#xff1a; 操作系统&#xff1a;centos7.5 【使用方法…

E8.Net 2005工作流平台版本发布

2007年2月&#xff0c;完成了EPowerFlow.Net2003版本升级到E8.Net2005版本的工作&#xff0c;今后E8.Net工作流平台就可以使用Microsoft Visual Studio 2005(SP1)的进行应用开发了。EPowerFlow.Net2003版本将继续保留一段时间&#xff0c;未来将全面推广E8.Net2005版本。E8.Net…

设计模式系列·抽象工厂模式

前言 以小说的笔法写的设计模式系列文章&#xff0c;你绝对看得懂&#xff01;[首发于公众号:"聊聊代码"] 设计模式系列王小二需求历险记(一)设计模式系列王小二需求历险记(二)设计模式系列封装、继承、多态设计模式系列初探设计模式之王小二的疑问设计模式系列Facad…

14级团队学习成果汇报 -- 利用express+socket.io搭建简易版聊天室

周鹏&#xff0c;14级数理系&#xff0c;信息与计算科学大三学生。在LSGO软件技术团队负责前端部分&#xff0c;本图文是他的一个完整作品&#xff0c;代码可在Github上下载。

String复习笔记

注&#xff1a;可以在我的下载中下载完整word版 我的String学习体系 不可变 常见操作 补充&#xff1a;重载 在变成连接符String s "abc"24"haha";格式化输出 thinking in java 的例子 StringBuffer 简介 常见操作

面向对象模型的四种核心技术

1、分类类是具有相同属性结构和操作方法的对象的集合&#xff0c;属于同一类的对象具有相同的属性结构和操作方法。分类是把一组具有相同属性结构和操作方法的对象归纳或映射为一个公共类的过程。对象和类的关系是“实例”(instance-of)的关系。同一个类中的若干个对象&#xf…

Matlab与线性代数 -- 线性间隔向量

这段时间有同学给我后台留言&#xff0c;希望能够推送与Matlab相关的内容&#xff0c;本学期该微信号承担了数理系信息教研室线性代数课程内容推送和通知的任务&#xff0c;想来想去&#xff0c;就以此为契机&#xff0c;把Matlab和线性代数的内容结合起来吧&#xff0c;希望对…

盖茨基金会:如何使用Python拯救生命

每年全球都要花费数十亿美元来预防疾病&#xff0c;减少死亡&#xff0c;资助预防保健及治疗的各种研发项目&#xff0c;以及其他的健康方案。但资金毕竟是有限的&#xff0c;所以一些组织&#xff0c;比如全球卫生资金的主要捐助者比尔&梅林达盖茨基金会&#xff08;Billa…

正则表达式复习笔记

注&#xff1a;可以在我的下载中下载完整word版 复习体系 简介 正则表达式是:符合一定规则的表达式。 作用&#xff1a;用于专门操作字符串。 特点&#xff1a;用一些特定的符号来表示一些代码操作。这样就简化书写。 所以学习正则表达式&#xff0c;就是在学习一些特殊符号…

规划文章的“显示效果”,还是太多犹豫。

现在的一篇文章可能有“带图片”&#xff08;现称焦点&#xff09;&#xff0c;头条&#xff08;可能要重新命名标题&#xff09;&#xff0c;有几种显示效果的情况怎么办&#xff1f;把头条和焦点规划到一起来&#xff1f;想不出一个比较好的解决方案。初步准备“一对多”。先…

Matlab与线性代数 -- 方阵的行列式

这段时间有同学给我后台留言&#xff0c;希望能够推送与Matlab相关的内容&#xff0c;本学期该微信号承担了数理系信息教研室线性代数课程内容推送和通知的任务&#xff0c;想来想去&#xff0c;就以此为契机&#xff0c;把Matlab和线性代数的内容结合起来吧&#xff0c;希望对…

《深入浅出iPhone/iPad开发(第2版)》——在Xcode中建立你的界面

本节书摘来自异步社区《深入浅出iPhone/iPad开发&#xff08;第2版&#xff09;》一书中的在Xcode中建立你的界面&#xff0c;作者 【美】Dan Pilone , Tracey Pilone&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 在Xcode中建立你的界面深入浅出iPhone/iPa…