asp上传文件到服务器的代码怎么写?

asp上传文件到服务器的代码怎么写?,第1张

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>无标题文档</title>

</head>

<body>

<%

'On Error Resume Next

Response.Expires=0

if Request.TotalBytes then

set a=createobject("adodb.stream")

a.Type=1

a.Open

a.write Request.BinaryRead(Request.TotalBytes)

a.Position=0

b=a.Read

c=chrB(13)&chrB(10)

d=clng(instrb(b,c))

e=instrb(d+1,b,c)

set f=createobject("adodb.stream")

f.type=1

f.open

a.Position=d+1

a.copyto f,e-d-3

f.Position=0

f.type=2

f.CharSet="GB2312"

g=f.readtext

f.Close

h=mid(g,instrRev(g,"\")+1,e)

i=instrb(b,c&c)+4

j=instrb(i+1,b,leftB(b,d-1))-i-2

if j <1 then

set f =nothing

set a =nothing

response.write "未选择要上传文件<a href='?'>重新上传</a>"

response.end

end if

f.Type=1

f.Open

a.Position=i-1

a.CopyTo f,j

h = Mid(h, InStrRev(h, "filename=""") + 10) '这是我帮你添加的,文件名的获取没有正确

f.SaveToFile server.mappath("/EXCEL/"&h),2

f.Close

set f=Nothing

a.Close

set a=Nothing

'response.write "<a href="&Server.URlEncode(h)&">"&h&"</a>"

end if

If Err.number<>0 Then

response.Write err.number

response.Write err.Description

Response.End

End If

%>

<script language="javascript">

function checkupload() {

if (document.upload_form.fe.value == "") {

alert("未选择要上传的文件")

return false

}

}

</script>

<form name="upload_form" enctype="multipart/form-data" method="post" onsubmit="return(checkupload())">

<input type="file" name="fe"/>

<input type="submit" value="上传" name="B1"/>

</form>

</body>

</html>

有两种方法:1.存储是采用随机文件名,如:2012010713062315.jpg [也就是:年份+月份+日期+小时+分钟+秒+毫秒+随机数 + 文件后缀]。再用FSO检查服务器的文件是否已经存在,如果存在则重新生成文件名末尾的随机数。2.上传时用FSO检查服务器的文件是否已经存在,如果存在则提示文件已经存在,重命名后再上传。

private string ftpServerIP = "服务器ip"//服务器ip

private string ftpUserID = "ftp的用户名"//用户名

private string ftpPassword = "ftp的密码"//密码

//filename 为本地文件的绝对路径

//serverDir为服务器上的目录

private void Upload(string filename,string serverDir)

{

FileInfo fileInf = new FileInfo(filename)

string uri = string.Format("ftp://{0}/{1}/{2}", ftpServerIP,serverDir,fileInf.Name)

FtpWebRequest reqFTP

// 根据uri创建FtpWebRequest对象

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri))

// ftp用户名和密码

reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword)

// 默认为true,连接不会被关闭

// 在一个命令之后被执行

reqFTP.KeepAlive = false

// 指定执行什么命令

reqFTP.Method = WebRequestMethods.Ftp.UploadFile

// 指定数据传输类型

reqFTP.UseBinary = true

// 上传文件时通知服务器文件的大小

reqFTP.ContentLength = fileInf.Length

// 缓冲大小设置为2kb

int buffLength = 2048

byte[] buff = new byte[buffLength]

int contentLen

// 打开一个文件流 (System.IO.FileStream) 去读上传的文件

FileStream fs = fileInf.OpenRead()

try

{

// 把上传的文件写入流

Stream strm = reqFTP.GetRequestStream()

// 每次读文件流的2kb

contentLen = fs.Read(buff, 0, buffLength)

// 流内容没有结束

while (contentLen != 0)

{

// 把内容从file stream 写入 upload stream

strm.Write(buff, 0, contentLen)

contentLen = fs.Read(buff, 0, buffLength)

}

// 关闭两个流

strm.Close()

fs.Close()

}

catch (Exception ex)

{

// MessageBox.Show(ex.Message, "Upload Error")

Response.Write("Upload Error:" + ex.Message)

}

}

调用方法

string filename = "D:\\test.txt" //本地文件,需要上传的文件

string serverDir = "img" //上传到服务器的目录,必须存在

Upload(filename,serverDir)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/215801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存