Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

如何用C#接受用户通过Form提交的文件?

0 views
Skip to first unread message

LBee_CN

unread,
Jul 25, 2003, 12:02:04 AM7/25/03
to
服务端要把用户upload来的文件Save到数据库中,如何做到?

有这方面的文章吗?
谢谢。

LBee


豆腐

unread,
Jul 25, 2003, 1:02:54 AM7/25/03
to
印象中C#做文件上传是巨简单的事情

--
----------------------------------------------
我要参加MVP竞选
"LBee_CN" <LBe...@hotmail.com> 写入消息新闻
:OEcoDGmU...@TK2MSFTNGP10.phx.gbl...

豆腐

unread,
Jul 25, 2003, 1:11:46 AM7/25/03
to
这个是N年前用VB.Net做的上传,你在vs.net下应该很轻松就修改成C#的了
<script language=""VB"" runat=""server"">
Sub UploadFile(sender As Object, e As EventArgs)

If FileUp.PostedFile.ContentLength = 0 Then
FileInfo.Visible = False
Exit Sub
Else
FileInfo.Visible = True
End If

FSize.Text = CStr(FileUp.PostedFile.ContentLength)
FName.Text = FileUp.PostedFile.FileName

Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, ""\"" )
Dim FileName As String = FileSplit(FileSplit.Length-1)
FileUp.PostedFile.SaveAs( Server.MapPath(""."") & ""\Upload\"" &
FileName )

Dim Exts() As String = Split( FileName, ""."" )
Dim Ext As String = LCase(Exts(Exts.Length-1))
If Ext <> ""jpg"" And Ext <> ""jpeg"" And Ext <> ""gif"" And Ext <>
""txt"" And Ext <> ""htm"" And Ext <> ""html"" Then
FDisplay.Visible = False
Else
FDisplay.Text = ""<A Target='_blank' HREF='Upload/"" & _
FileName & ""'>上传文件</A>""
End If
End Sub
</script>

<Html>
<Body BgColor=White>
<H3>上传文件<Hr></H3>

<Form Enctype=""multipart/form-data"" runat=""server"">
上传文件
<Input Type=""File"" id=""FileUp"" runat=""server""><P>
<Asp:button id=""Upload"" OnClick=""UploadFile"" Text=""Upload""
runat=""server""/>
</form><Hr>

<Div id=""FileInfo"" Visible=""False"" runat=""server"">
上传文件名 <Asp:Label id=""FName"" runat=""server""/><br>
上传文件大小 <Asp:Label id=""FSize"" runat=""server""/><br>
<Asp:Label id=""FDisplay"" runat=""server""/>
</Div>

</Body>
</Html>


--
----------------------------------------------
我要参加MVP竞选
"LBee_CN" <LBe...@hotmail.com> 写入消息新闻
:OEcoDGmU...@TK2MSFTNGP10.phx.gbl...

lbh

unread,
Jul 25, 2003, 5:47:17 AM7/25/03
to
一个我以前写的上传类,你可以参考一下。

public class Upload
{
private string savePath = "";
private string saveName = "";
private string filePathName = "";
private string prefix = "";
private string postfix = "";
private int fileLength = 0;
private int maxFileLength = 0;
private HtmlInputFile htmlInputFileControlName = null;


public Upload(HtmlInputFile aHtmlInputFileControlName,string aSavePath,int
aMaxFileLength)
{
try
{
if(aHtmlInputFileControlName.PostedFile.FileName.ToString() !=
String.Empty )
{
HtmlInputFileControlName = aHtmlInputFileControlName;
SavePath = aSavePath;
MaxFileLength = aMaxFileLength;
SetProperty();
DoUpload();
}
else
{
return;
}
}
catch
{
return;
}
}

private void DoUpload()
{
if (HtmlInputFileControlName.PostedFile.ContentLength != 0)
{
if(HtmlInputFileControlName.PostedFile.ContentLength <= MaxFileLength)
{
HtmlInputFileControlName.PostedFile.SaveAs(FilePathAndName);
}
else
{
return;
}
}
else
{
return;
}
}

private void SetProperty()
{
string[] fixArray =
PathToName(HtmlInputFileControlName.PostedFile.FileName).Split(new
Char[]{'.'});
if(fixArray.Length > 0)
{
Prefix = fixArray[0];
if(fixArray.Length > 1)
{
Postfix = fixArray[1];
}
}
FileLength = HtmlInputFileControlName.PostedFile.ContentLength;
string UploadTime =
String.Format("{0:yyyyMMddHHmmss}",DateTime.Now).ToString();
SaveName = Prefix + UploadTime + FileLength.ToString() + "." + Postfix;
FilePathAndName = SavePath + SaveName;
}

private string PathToName(string path)
{
int pos = path.LastIndexOf("\\");
return path.Substring(pos+1);
}

/// <summary>
/// 获取或设置HtmlInputFile控件的名称
/// </summary>
protected HtmlInputFile HtmlInputFileControlName
{
get
{
return htmlInputFileControlName;
}
set
{
htmlInputFileControlName = value;
}
}
/// <summary>
/// 获取或设置上传文件在服务器上的存放路径
/// </summary>
public string SavePath
{
get
{
if(savePath == String.Empty)
{
savePath = "c:\\"; //默认存放路径在C盘根目录
}
return savePath;
}
set
{
savePath = value;
}
}

public string SaveName
{
get
{
return saveName;
}
set
{
saveName = value;
}
}

public string FilePathAndName
{
get
{
return filePathName;
}
set
{
filePathName = value;
}
}

/// <summary>
/// 获取或设置上传文件大小的最大值
/// </summary>
public int MaxFileLength
{
get
{
if(maxFileLength == 0)
{
maxFileLength = 1048576; //默认上传文件的最大值是1M=1024*1024
}
return maxFileLength;
}
set
{
maxFileLength = value*1024*1024;
}
}

/// <summary>
/// 获取或设置上传文件大小
/// </summary>
public int FileLength
{
get
{
return fileLength;
}
set
{
fileLength = value;
}
}

/// <summary>
/// 获取或设置上传到服务器后的文件名称
/// </summary>
public string Prefix
{
get
{
if(prefix == String.Empty)
{
prefix = Guid.NewGuid().ToString();
}
return prefix;
}
set
{
prefix = value;
}
}

/// <summary>
/// 获取或设置上传到服务器后的文件扩展名
/// </summary>
public string Postfix
{
get
{
if(postfix == String.Empty)
{
postfix = "";
}
return postfix;
}
set
{
postfix = value;
}
}
}
}

"LBee_CN" <LBe...@hotmail.com> 写入消息新闻
:OEcoDGmU...@TK2MSFTNGP10.phx.gbl...

0 new messages