怎么限制上传文件格式

作者&投稿:年齐 (若有异议请与网页底部的电邮联系)
如何限制上传文件的大小和类型?~

有两种方式,
1、用fileupload控件在后台判断
FileUpload1.FileContent.Length判断大小,
System.IO.Path.GetExtension(FileUpload1.FileName)获取文件后缀
2、用jquery上传控件,可以直接判断类型和大小
另外js也可以在前台判断文件类型,但不能获取文件大小,需要引用插件

string fileContentType = fileupload.PostedFile.ContentType; if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg") { FileInfo finlinfo = new FileInfo(fileupload.PostedFile.FileName); string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + fileupload.PostedFile.FileName.Substring(fileupload.PostedFile.FileName.LastIndexOf('.')); fileupload.SaveAs(System.Web.HttpContext.Current.Server.MapPath("~/File/" + saveFolder + "/") + filename); filpath = "~/File/" + saveFolder + "/" + filename; errinfo = "成功"; } else { errinfo = "上传文件类型不正确"; }

满意请采纳

在源代码里面该嘛

给你一段你照抄

UpFile.asp文件

<!--#include file="conn.asp"-->
<%
'这里是接受COOKice
username=session("username")
passwd=session("Passwd")
%>
<%
' 整个网站的安全要紧啊!如果没登陆那就给我到Login.asp页面去吧!
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from admin where username='"&username&"'and passwd='"&passwd&"'"
rs.open sql,conn,1,1
if rs.eof then
response.redirect "login.asp"
response.end
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function mysubmit(theform)
{
if(theform.Text_Files.value=="")
{
alert("请点击浏览按钮,选择您要上传的jpg或gif文件!")
return (false);
}
else
{
str= theform.Text_Files.value;
strs=str.toLowerCase();
lens=strs.length;
extname=strs.substring(lens-4,lens);
if(extname!=".jpg" && extname!=".gif")
{
alert("请选择jpg或gif文件!");
return (false);
}
}
return (true);
}
</script>
</head>

<body>
<table width="293" border="0" cellspacing="0">
<tr>
<td> <form name="FileForm" method="post" enctype="multipart/form-data" action="Save_UpFiles.asp" onsubmit="return mysubmit(this)">
<input name="Text_Files" type="file" style="width:80%">
<input type="submit" name="Submit" value="上传">
</form></td>
</tr>
</table>
</body>
</html>

Save_UpFiles.asp文件

<%
Option Explicit
Response.Buffer = True
Server.ScriptTimeOut = 9999999
%>
<!--#include file="Class_UpFiles.asp" -->
<%
'限制从外部非法提交
If Instr(Request.ServerVariables("http_referer"),"http://" & Request.Servervariables("host") ) < 1 Then
Response.Write "处理 URL 时服务器上出错!请与管理员联系..."
Response.End
End If

Const G_FS_FSO = "Scripting.FileSystemObject" 'FSO组件名称
'---------------------------------------------
Dim AllowFileType
AllowFileType = "jpg|gif"
Dim AllowFileSize
AllowFileSize = 10240
Dim Create_DateCatalog
Create_DateCatalog = True '是否开启创建日期目录
'---------------------------------------------
Dim AutoReName,UpFileObj,FileObject,FormName,FileName,FileExtStr,strFileName
Dim Fso,SavePath,AutoSavePath,AppearErr,ClueOn_Msg,StrJs
Dim SameFileTF,No_UpFileTF,RealityPath
'---------------------------------------------
SavePath = "/" '保存文件目录
If Right(SavePath,1) <> "/" Then
SavePath = SavePath & "/"
End If

Set UpFileObj = New UpFile_Class
UpFileObj.GetData(10240000)

AutoReName = Trim(UpFileObj.Form("AutoRename")) '是否自动重命名文件
ClueOn_Msg = ""
No_UpFileTF = True
AppearErr = False
If IsObjInstalled(G_FS_FSO) = True Then
'------------------------------------------------------------------------------
Set Fso = Server.CreateObject(G_FS_FSO)
'--------------------------------------------------------------------------
For Each FormName in UpFileObj.File '列出所有上传了的文件

Set FileObject = UpFileObj.File(FormName) '生成一个文件对象
SameFileTF = False
FileName = FileObject.FileName
If NoIiiegalStr(FileName) = False Then
ClueOn_Msg = "文件:上传被禁止!"
AppearErr = True
End If

FileExtStr = FileObject.FileExt

If FileObject.FileSize > 1 Then '如果有文件上传
'----------------------------------------------------------------------
If Fso.FolderExists(Server.MapPath(SavePath)) = True Then '检测目录是否存在
If Create_DateCatalog = True Then '如果开启了自动创建日期目录
AutoSavePath = Year(Now()) & Right("0" & Month(Now()),2) & "/"
SavePath = SavePath & AutoSavePath

If Not Fso.FolderExists(Server.MapPath(SavePath)) Then '如不存在目录则建立
Fso.CreateFolder Server.MapPath(SavePath)
End If
End If
Else
ClueOn_Msg = "目录不存在,无法上传文件!"
AppearErr = True
End If
RealityPath = Server.MapPath(SavePath) & "\" '转换虚拟路径为实际路径
'----------------------------------------------------------------------
No_UpFileTF = False
If FileObject.FileSize > Clng(AllowFileSize)*1024 Then
ClueOn_Msg = FileName & "文件超过了限制!\n\n最大只能上传" & AllowFileSize & "K的文件"
AppearErr = True
End If

If AutoRename = "2" Then '如果不是自动从命名文件
If Fso.FileExists(RealityPath & FileName) = True Then
ClueOn_Msg = "文件:存在同名文件"
AppearErr = True
Else
SameFileTF = False
End If
Else
SameFileTF = True
End If

If CheckFileType(AllowFileType,FileExtStr) = False Then '如果文件后缀名不合格
ClueOn_Msg = "此文件不允许上传!\n\n允许上传文件类型有"& AllowFileType &""
AppearErr = True
End If

StrJs = "<script language=javascript>" & vbcrlf
If AppearErr <> True Then
If SameFileTF = True Then
strFileName = DateStr & rndStr(5) & "." & DealExtName(FileExtStr)
Else
strFileName = ReplaceExt(FileName,"shit")
End If

FileObject.SaveToFile Server.MapPath(SavePath & strFileName) '保存文件
' ClueOn_Msg = "文件上传成功!"& SavePath & strFileName &"" '上传成功信息
StrJs = StrJs & "document.write ('<font size=2>[sayyes]"& SavePath & strFileName &"[/sayyes]');" & vbcrlf '上传成功后显示文件所在
StrJs = StrJs & "document.write ('<a href=javascript:history.go(-1)>[继续上传]</a></font>');" & vbcrlf '上传成功后继续上传
End If
' StrJs = StrJs & "alert('" & ClueOn_Msg & "');" & vbcrlf
' StrJs = StrJs & "history.go(-1);" & vbcrlf
StrJs = StrJs & "</script>"
Response.Write strJS
Response.End
Else
Response.Write( "请选择你要上传的文件!")
Response.End
End If
Next
Set FileObject = Nothing
Set Fso = Nothing
Else
Response.Write "上传功能需要FSO组件支持,请检查该组件是否安装正确!"
Response.End
End If
Set UpFileObj = Nothing

'//验证上传文件的合法性
Function CheckFileType(AllowExtStr,FileExtName)
Dim i,AllowArray,LenTmp
LenTmp = Len(FileExtName)
AllowArray = Split(AllowExtStr,"|")
FileExtName = DealExtName(Trim(LCase(FileExtName)))
CheckFileType = False
For i = LBound(AllowArray) to UBound(AllowArray)
If LCase(AllowArray(i)) = LCase(FileExtName) Then
CheckFileType = True
End If
Next
If FileExtName = "asp" or FileExtName = "asa" or FileExtName = "aspx" or FileExtName = "cer" or FileExtName = "php" or FileExtName = "cdx" or FileExtName = "htr" or FileExtName = "exe" Then
CheckFileType = False
Else
If LenTmp <> Len(FileExtName) Then
CheckFileType = False
End If
End If
End Function

'//检查文件名格式
Function NoIiiegalStr(Byval FileNameStr)
Dim Str_Len,Str_Pos
Str_Len = Len(FileNameStr)
Str_Pos = InStr(FileNameStr,Chr(0))
If Str_Pos = 0 or Str_Pos = Str_Len then
NoIiiegalStr = True
Else
NoIiiegalStr = False
End If
End function

'//替换掉禁止的文件类型
Function DealExtName(Byval UpFileExt)
If IsEmpty(UpFileExt) Then Exit Function
DealExtName = Lcase(UpFileExt)
DealExtName = Replace(DealExtName,Chr(0),"")
DealExtName = Replace(DealExtName," ","")
DealExtName = Replace(DealExtName," ","")
DealExtName = Replace(DealExtName,Chr(255),"")
DealExtName = Replace(DealExtName,".","")
DealExtName = Replace(DealExtName,"'","")
DealExtName = Replace(DealExtName,"asp","")
DealExtName = Replace(DealExtName,"asa","")
DealExtName = Replace(DealExtName,"aspx","")
DealExtName = Replace(DealExtName,"cer","")
DealExtName = Replace(DealExtName,"cdx","")
DealExtName = Replace(DealExtName,"htr","")
DealExtName = Replace(DealExtName,"php","")
DealExtName = Replace(DealExtName,"exe","")
End Function

'//如果不开启自动命名,则执行替换
'//替换非法文件为自定义字符串
Function ReplaceExt(Byval ExtStr,Byval RepExt)
If IsEmpty(ExtStr) or IsEmpty(RepExt) Then Exit Function
ReplaceExt = Lcase(ExtStr)
ReplaceExt = Replace(ReplaceExt,Chr(0),"")
ReplaceExt = Replace(ReplaceExt," ","")
ReplaceExt = Replace(ReplaceExt," ","")
ReplaceExt = Replace(ReplaceExt,Chr(255),"")
ReplaceExt = Replace(ReplaceExt,"'","")
ReplaceExt = Replace(Replace(ReplaceExt,"asp",RepExt),".asp","sp" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"asa",RepExt),".asa","sa" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"aspx",RepExt),".aspx","spx" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"cer",RepExt),".cer","er" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"cdx",RepExt),".cdx","dx" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"htr",RepExt),".htr","tr" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"php",RepExt),".php","hp" & RepExt)
ReplaceExt = Replace(Replace(ReplaceExt,"exe",RepExt),".exe","xe" & RepExt)
End Function

'//产生一个日期字符串
Function DateStr()
Dim iYear,iMonth,iDay,iHour,iMinute,iScond
iYear = Year(Now)
iMonth = Month(Now)
iDay = Day(Now)
iHour = CStr(Hour(Now()))
If Len(iHour) = 1 Then
iHour = "0" & iHour
End If

iMinute = CStr(Minute(Now()))
If Len(iMinute) = 1 Then
iMinute = "0" & iMinute
End If

iScond = CStr(Second(Now()))
If Len(iScond) = 1 Then
iScond = "0" & iScond
End If
DateStr = iYear & iMonth & iDay & iHour & iMinute & iScond
End Function

'//生成指定位数的字符
Function rndStr(strLong)
Dim tempStr
Randomize
Do while Len(rndStr) < strLong
tempStr = CStr(Chr((57-48)*rnd+48))
rndStr = rndStr & tempStr
Loop
rndStr = rndStr
End Function

'//检查组件是否安装
Function IsObjInstalled(ByVal strClassString)
Dim xTestObj,ClsString
On Error Resume Next
IsObjInstalled = False
ClsString = strClassString
Err = 0
Set xTestObj = Server.CreateObject(ClsString)
If Err = 0 Then IsObjInstalled = True
If Err = -2147352567 Then IsObjInstalled = True
Set xTestObj = Nothing
Err = 0
Exit Function
End Function
%>

当然照搬是肯定是不能正常使用的

需要按照你的网站具体修改!!

有什么需要问的可以在我的贴吧
http://post.baidu.com/f?kw=%C1%FA%B7%C9%D1%EF
留言

我的博客
http://hi.baidu.com/%D6%B1%B5%BD%D3%F6%B5%BD%B7%EF%C7%E1%CE%E8
留言
或加我 QQ:284610811

long飞机回答的很好,完成能用


上传不成功是什么原因?
最后,上传文件的格式和类型也可能导致上传失败。有些服务器会限制上传文件的格式和类型,如果不符合要求,就会上传失败。这种情况下,需要仔细阅读服务器文档,了解支持的文件格式和类型,然后将文件转换为符合要求的格式和类型。如果服务器不支持所需的文件格式和类型,需要寻找其他解决方案,比如将文件转换为...

上传文件类型限制?
网站允许上传无非是图片,FLASH,视频,压缩包,这些对于服务器来说都是无害的。至于里面是否嵌病毒,这个是没办法控制的,即使服务器装杀毒软件也有办法免杀。一般来说就是做扩展名判断,但是开发的时候必须要注意的是,上传后的文件必须必须改文件名称,否则容易被人用空字符(\\0)截断从而上传可执行文件...

文件怎么上传不了呢?
上传失败可能有以下几个原因:1、网络信号不好。检查网络是否正常,切换到比较畅通的网络重新上传;2、上传的文件不符合要求。确认一下是否对上传的文件有格式或者大小方面的限制,上传时需要上传符合规范的文件;3、上传的文件有问题。确认一下是否会检测上传文件内容,是否会隔离掉某种文件;4、官网本身有...

...能够限制上传文件的大小,文件是EXCEL格式,十分感谢!!!
给你找个篇可以安装篇,那里有个动态参数设置,到那里改就好了。。 使用Serv-U软件来架设FTP服务器,SERV-U3.0 主要功能: * 以 WindowsNT\/2000\/XP... 的 Service 形式运行, 可以随开机而启动服务 * 把服务器和管理工具分离, 而管理工具可以远程配置 Serv-U 3 的服务器 * 虚拟路径映射 (Virtual...

尼康工坊无法传送文件怎么回事
尼康工坊无法传送文件的原因是上传文件大小限制、文件格式不支持、网络问题。1、上传文件大小限制:尼康工坊对于上传的文件大小有一定的限制,如果您上传的文件超过了规定的大小,就无法上传成功。您可以查看尼康工坊的上传文件大小限制,并将文件大小控制在规定范围内。2、文件格式不支持:尼康工坊对于上传的...

PHP中怎么限定上传文件的格式为doc或者docx
function NewUploadFile( $jpg, $jpg_type, $fname, $jpg_size, $path ){ global $strDownNotice9;global $strDownNotice11;if ( $jpg_size == 0 ){ arr[0] = "err";arr[1] = $strDownNotice9;return $arr;} if ( substr( $fname, -4 ) != ".doc" && substr( $fname, ...

选择文件上传是什么意思?
上传文件的步骤通常是先点击“上传”或“选择文件”按钮,然后浏览电脑存储的文件,选中并确认要上传的文件。在上传文件时,应注意文件格式、大小和上传限制等细节。例如,部分网站仅支持上传特定的文件格式,同时也有可能要求文件大小不超过一定数值。无论是在工作还是学习中,我们都需要分享和交流文件。选择...

文件上传失败怎么办?
首先,当出现上传文件失败的情况时,我们可以先尝试重新上传文件。有时候,网络的不稳定或者其他临时性的问题可能会导致上传失败,重新上传可能就解决了问题。其次,我们需要检查上传文件的大小和格式是否符合要求。有些平台或系统对上传的文件大小和格式有规定,超过大小限制或者格式不正确都会导致上传失败。

.net网站怎么上传歌曲文件?还有怎么很好地限制上传文件的格式?
response.Write(fileupload1.postedfile.contentType);先看看TXT,DOC的文件类型的字符串是什么。。。type=fileupload1.postedfile.contentType 然后if(String.equals(type,"这里写刚才测试的字符串"){上传} else {alert()}

java上传文件格式要如何控制?
文件上传的时候,一定会打开一个文件选择JFileChooser 他有个方法getSelectedFile() 这个方法返回他选择的文件, 他选完你就判断下 如果此文件的后缀不是你允许的你就直接一个对话框弹回去警告下, 如果是你允许的 就执行上传操作好了.

安图县17012458014: 怎么在网页上限制上传图片的格式? -
徐唯谓乐: string fileContentType = fileupload.PostedFile.ContentType; if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg") { FileInfo finlinfo = new FileInfo(fileupload.PostedFile.FileName); string ...

安图县17012458014: 文档上传格式怎么控制,用CSS行不 -
徐唯谓乐: 光靠CSS不行,可以使用JS代码,当用户选择文件后,立即读取文件类型filetype(可以用html5的FileReader) 然后根据不同的filetype,显示不同图标.

安图县17012458014: 那么什么软件可以限制电脑上传的内容,比如文件类型exe -
徐唯谓乐: 如果你装了防火墙了 就在防火墙里把该程序拉入黑名单 禁止访问互联网,如果没装就启用windows系统防火墙 设置一样 如果对你有帮助, 请点击好评

安图县17012458014: PHP中怎么限定上传文件的格式为doc或者docx -
徐唯谓乐: function NewUploadFile( $jpg, $jpg_type, $fname, $jpg_size, $path ) {global $strDownNotice9;global $strDownNotice11;if ( $jpg_size == 0 ){$arr[0] = "err";$arr[1] = $strDownNotice9;return $arr;} if ( substr( $fname, -4 ) != ".doc" && ...

安图县17012458014: Java web文件上传怎么限制文件类型 -
徐唯谓乐: 1. 前端限制,用 正则匹配文件名后缀 /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/ 这个是图片正则匹配2. 服务端获取文件,用正则匹配文件名后缀3. MultipartHttpServletRequest mrequest = ...

安图县17012458014: js怎样控制上传文件类型 -
徐唯谓乐: 将你要上传的文件的后缀改成允许上传的类型,到时候下载下来再改回来就行了

安图县17012458014: 文件上传如何限定文件类型? -
徐唯谓乐: input框加入accept属性 accept 属性仅适用于 <input type="file">,它规定了可通过文件上传提交的文件类型 但是绝大多数浏览器不支持该属性,所以,真正要限定,还是得自己写代码

安图县17012458014: jsp如何限制上传文件的类型 -
徐唯谓乐: 你可以使用上传文件的插件的相关API来获取上传文件的扩展名,不知道你用的上传文件的插件是哪个?这里举个SmartUpload的例子:<jsp:useBean id="smart" scope="page" class="com.jspsmart.upload.SmartUpload"/><% String ext = ...

安图县17012458014: 如何限制上传文件类型 -
徐唯谓乐: 在你的上传控件上,设置文件类型.

安图县17012458014: 下面asp程序如何限制上传文件类型
徐唯谓乐: 你贴上来的代码好像只有一个变量代码,没有上传代码.<%response.write ""&upbig&"K"%>这句代表显示上传的大小,这个大小也是人为给他设置的值的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网